Igo*_*ejc 7 c# user-interface multithreading synchronization asynchronous
问题描述:你编写了一个包含一些算法/任务的库,这些算法/任务可能需要很长时间才能完成,原因有多种:计算,文件系统,网络通信等.你希望能够:
我为此实现了一个框架,但是这要求所有这些任务都必须引用包含该框架的程序集.
我的问题:在.NET框架(3.5或更低版本)中是否存在针对上述问题的内置机制?
我知道我可以使用事件,但这意味着长时间运行的任务必须暴露这些事件,我认为这是一个开销.理想情况下,我希望有一个隐藏多线程问题的框架,并且依赖注入友好,但不依赖于额外的自定义程序集,也不会污染原始接口.
我希望我能很好地描述这个问题.如果没有,我可以从我自己的框架发布一些接口样本.
更新:好的,我认为我的问题描述需要一点澄清:).当我说"长期运行"时,我并不是说工作流程意义上的"长".我正在开发一个WinForms地图应用程序,可以完成各种各样的工作,比如生成浮雕轮廓.要做到这一点,首先必须从FTP服务器下载高程数据文件,解压缩然后执行一些计算.我很久以前就为此编写了代码,但为了使其更适合GUI,我必须改进各种检查 - 例如,检测用户是否点击了中止按钮并停止了该过程.
所以基本上我关心的是:如何编写一个稍后(如果有的话)可以在GUI环境中使用的代码,在那里你不能简单地在主GUI线程中运行所有内容并冻结整个应用程序.面临的挑战是找到一种方法,使您的代码适合GUI目的,而无需将其绑定到特定的GUI平台.
| 归档时间: |
|
| 查看次数: |
1044 次 |
| 最近记录: |