Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 线程之间的通信而不终止线程_C#_.net_Wpf_Multithreading - Fatal编程技术网

C# 线程之间的通信而不终止线程

C# 线程之间的通信而不终止线程,c#,.net,wpf,multithreading,C#,.net,Wpf,Multithreading,我正在创建一个WPF应用程序,其中我需要一个线程,该线程应连续读取文件夹中的空文件(文件名包含pid、进程名称和唯一计划名称),并应检查系统中是否存在具有相同进程名称的pid 如果线程发现任何已崩溃且不存在于系统中的进程,它应将计划名称发送到主UI线程,而不退出,并应继续其工作 我已经实现了第1部分。但是不知道如何实现这两部分。发送到主线程”通常意味着使用主线程的调度程序,并调用Invoke或BeginInvoke来封送将在主(UI)线程上运行的委托 您可以根据需要将“计划名称”添加回主线程上的

我正在创建一个WPF应用程序,其中我需要一个线程,该线程应连续读取文件夹中的空文件(文件名包含pid、进程名称和唯一计划名称),并应检查系统中是否存在具有相同进程名称的pid

如果线程发现任何已崩溃且不存在于系统中的进程,它应将计划名称发送到主UI线程,而不退出,并应继续其工作

我已经实现了第1部分。但是不知道如何实现这两部分。

发送到主线程”通常意味着使用主线程的调度程序,并调用
Invoke
BeginInvoke
来封送将在主(UI)线程上运行的委托

您可以根据需要将“计划名称”添加回主线程上的集合。

发送到主线程”通常意味着使用主线程的调度程序,并调用
Invoke
BeginInvoke
封送将在主(UI)线程上运行的委托


您可以根据需要将“计划名称”添加回主线程上的集合中。

我可以通过创建包含崩溃进程详细信息的共享集合来完成此操作。然后,我将创建一个UI计时器,以设定的时间间隔轮询集合以查看其中的内容。此方案显然需要某种锁(可能是ReaderWriterLock)来防止对集合的错误读取。

我将通过创建一个包含崩溃进程详细信息的共享集合来做到这一点。然后,我将创建一个UI计时器,以设定的时间间隔轮询集合以查看其中的内容。此方案显然需要某种锁(可能是ReaderWriterLock)来防止错误读取集合。

线程工作使用什么类?线程工作使用什么类?请给我一些链接。我搜索了begininvoke,但找不到从线程到UI线程获取数据的方法。一些代码将非常有用。@RATHI-See:你能给我一些链接吗。我搜索了begininvoke,但找不到从线程到UI线程获取数据的方法。一些代码将非常有用。@RATHI请参见: