c# - 如何暂停/恢复线程

标签 c# wpf multithreading resume

如何暂停/恢复线程?一旦我 Join() 一个线程,我就无法重新启动它。 那么我怎样才能启动一个线程并在按下“暂停”按钮时使其暂停,并在按下恢复按钮时恢复它呢?

这个线程做的唯一一件事就是在标签控件中显示一些随机文本。

最佳答案

也许 ManualResetEvent 是一个不错的选择。 一个简短的例子:

private static EventWaitHandle waitHandle = new ManualResetEvent(initialState: true); 

// Main thread
public void OnPauseClick(...) {
   waitHandle.Reset();
}

public void OnResumeClick(...) {
   waitHandle.Set();
}

// Worker thread
public void DoSth() {
   while (true) {
     // show some random text in a label control (btw. you have to
     // dispatch the action onto the main thread)
     waitHandle.WaitOne(); // waits for the signal to be set
   }
}

关于c# - 如何暂停/恢复线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10469687/

相关文章:

c# - 在 VS 中自动创建项目

c# - 单击表单上的按钮时打开网站

wpf - 从 VM 的数据中提取

WPF 和 ICUTest 单元测试

java - 通过 Java 线程或 NDK pthread 加载 JNI 库?

c# - 无法终止 Silverlight 中的工作线程

c# - 如何将字节 [] 写入 Excel 文件?

c# - 在 wpf 应用程序中使用 process.start 调用另一个 wpf 应用程序

java - 重入锁定条件

c# - 如何根据属性值启用或禁用复选框?