我正在创建一个WPF应用程序,其中我需要一个线程,它应该连续读取文件夹中的空文件(文件名包含pids和进程的名称以及唯一的计划名称),并且应该检查pid与系统中存在相同的进程名称,不是。
如果线程发现任何已崩溃且在系统中不存在的进程,它应该将计划名称发送到主UI线程而不退出并继续其工作。
我实施了1部分。但不知道如何实施2部分。
答案 0 :(得分:5)
“发送到主线程”通常意味着使用主线程的Dispatcher,并调用Invoke
或BeginInvoke
来编组将在主(UI)线程上运行的委托。
您可以根据需要使用此选项将“计划名称”添加回主线程的集合中。
答案 1 :(得分:0)
我会通过创建包含崩溃进程详细信息的共享集合来完成此操作。然后我会创建一个UI计时器,在设置的时间间隔内轮询集合以查看其中的内容。这个方案显然需要某种锁(可能是ReaderWriterLock)来防止从集合中读取错误。