如何解决c#中的后台线程
| 我目前正在使用C#中的线程和backgroundworker。我有的问题是这个。说我有一个用于用户交互的主线程和一个用于处理txt文件(各种编辑操作)的辅助线程。然后,在backgroundthread运行一次其内容之后,我将启动一个计时器,执行另一组操作。我希望计时器运行x分钟的这些新操作在同一后台线程中运行,而不运行计时器启动之前运行的与txt相关的先前操作。如何才能做到这一点?解决方法
您应该只使用“ 0”,它将在线程池线程上运行其回调。
您在哪个特定线程上运行都无关紧要(只要它不是UI线程即可)。
如果由于某种原因确实很重要(例如,如果您使用的是单线程COM对象),则需要使用线程安全的委托队列制作一个专用的线程,等待执行操作。
, 您想要使用事件驱动方法从UI线程在工作线程上执行函数调用。完成此操作的方法是使用BeginInvoke,您可以在此处详细了解如何使用它:http://www.dreamincode.net/forums/topic/35616-cross-thread-communication-in-c%23/
, 在后台工作程序的末尾添加一个while循环:
while(!stop){Thread.Sleep(yourIntervalinMilliseconds); ...}
我想在线程要踢出的地方创建一个停止布尔。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。