我是C#和多线程的新手,所以我很抱歉,如果这是一个重复的问题,但作为一个新手它看起来我的问题与我读过的其他人略有不同。C#多线程 - 更新与背景事件的GUI
我的GUI在一个(主)线程中运行。它调用一个后台任务(在一个dll中 - 我也在写),它运行在一个单独的线程中。 dll对GUI不了解(即不能引用GUI类)。
现在,假设我想根据dll线程的状态更新GUI上的进度条 - >我正在做的是在dll中创建一个事件,每X%会触发并且GUI将会订阅此事件。当事件被触发时,GUI将更新进度条。
我的问题:
- 是创建活动的最佳方式(铭记DLL不能引用GUI)的方法?
- 如何确保我的上述方法是“事件安全”?我是否应该在事件中通过进度百分比以保证线程安全或者是否还有更多内容?
- 更新GUI时是否需要使用Invoke?我看到一篇文章提示我做了,但我不明白为什么自从GUI线程完成了更新吧!
希望你能澄清我的这个!
谢谢
“安全事件”是什么意思? – 2010-10-26 16:55:16
请在此处查看“BackgroundWorker”类的注释:http://stackoverflow.com/questions/1506838/backgroundworker-vs-background-thread/1507337#1507337 – 2010-10-26 18:24:10
我只想说感谢所有答复。他们都帮我回答了我的问题。很高兴看到这样的帮助! – SimpleOne 2010-10-26 19:34:03