C#子线程使用while循环等待响应
时间: 2024-11-30 22:22:56 浏览: 34
在C#中,如果你想在一个子线程中使用while循环等待响应,通常你会涉及到事件驱动模型或者异步/并发编程。下面是一个基本的例子,展示如何创建一个子线程并让它等待某个条件发生:
```csharp
using System;
using System.Threading;
class Program
{
private ManualResetEvent _event = new ManualResetEvent(false); // 创建手动重置事件
public void StartWorker()
{
Thread workerThread = new Thread(WorkMethod);
workerThread.Start();
// 主线程继续执行,然后设置事件来唤醒等待的子线程
// 当满足某些条件时,调用_event.Set() 来释放等待锁
// 这里只是一个示例,你需要替换为实际的条件检查
Console.WriteLine("主线程工作完成,设置事件...");
_event.Set();
}
private void WorkMethod()
{
while (!_event.WaitOne()) // 使用WaitOne阻塞当前线程,直到_event.Set()被触发
{
Console.WriteLine("子线程正在等待响应...");
}
Console.WriteLine("子线程收到响应,开始处理...");
// 在这里添加你的业务逻辑
}
static void Main(string[] args)
{
Program prog = new Program();
prog.StartWorker();
Console.ReadLine(); // 等待主线程结束
}
}
```
在这个例子中,当主线程完成其任务后,通过`_event.Set()`通知等待的子线程。子线程会一直阻塞在`WaitOne`方法上,直到事件被触发。
阅读全文