当前位置:  开发笔记 > 编程语言 > 正文

C#的多线程和可靠性

如何解决《C#的多线程和可靠性》经验,为你挑选了1个好方法。

在Windows窗体窗口中,多个事件可以触发异步方法.此方法下载文件并对其进行缓存.我的问题是我希望该方法执行一次.换句话说,我想阻止多次下载文件.

如果下载文件的方法被触发两次,我希望第二次调用等待文件(或等待第一种方法完成).

有人知道如何实现这一目标吗?

更新:我只是想阻止不必要的下载.在我的情况下,当客户端将鼠标放在ListBox中的项目上超过几毫秒时,我们开始下载.我们假设用户将单击并请求该文件.可能发生的是用户将鼠标放在项目上一秒钟,然后单击.在这种情况下,开始下载两次.我正在寻找处理这种情况的最佳方法.

更新2 ::用户可能会将鼠标移到多个项目上.结果,将发生多次下载.我对这种情况并不是很苛刻,但是现在如果我们面对这种情况,我们不会放弃下载.该文件将被下载(文件通常约为50-100kb),然后将被缓存.



1> Michael Hare..:

保持表单变量中发生的事件的状态,并让异步方法在执行任何操作之前检查该状态.但请确保您同步对它的访问权限!互斥体和信号量对这种事物有好处.

如果您可以同时下载不同的文件,则需要跟踪列表中的内容以供参考.

如果一次只能下载一个文件,并且您不想排队,那么您也可以在下载某些内容时取消该事件,并在下载完成后将其重新挂起.

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有