<分区>
我正在开发一个将同时执行多个搜索的应用程序。每一个都将在它自己的线程上。每个线程都需要检查一个数组以查看结果是否已经出现。如果它没有显示该结果,则将结果显示给用户并将其添加到主数组中。所以每个线程都需要能够同时读写主数组。
我有 PHP 和 JS 背景,所以我对线程和 C# 非常陌生。此处的任何帮助将不胜感激。
编辑:我正在使用 BackgroundWorker 进行多线程处理。
标签 c# multithreading
<分区>
我正在开发一个将同时执行多个搜索的应用程序。每一个都将在它自己的线程上。每个线程都需要检查一个数组以查看结果是否已经出现。如果它没有显示该结果,则将结果显示给用户并将其添加到主数组中。所以每个线程都需要能够同时读写主数组。
我有 PHP 和 JS 背景,所以我对线程和 C# 非常陌生。此处的任何帮助将不胜感激。
编辑:我正在使用 BackgroundWorker 进行多线程处理。
最佳答案
我不知道在您要使用 .NET 4.5 时使用 BackgroundWorker
的基本原理
所以,如果我可以补充:
Task Parallel Library
(Task.Run
/Task.Factory.StartNew()
, Parallel.For
/Parallel.ForEach
取决于您的需求)。lock
或 SlimReadWriterLock
),要么使用来自 Collections.Concurrent
的集合命名空间。现在继续这个话题有点冗长,所以如果您还有任何疑问或问题,我会适当编辑答案。在我链接的 MSDN 页面上有一些示例。
关于C# 多线程从主数组更新/读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15313509/
相关文章:
multithreading - 当我在Winsock connect函数中强制终止线程时会发生什么?
c# - 使用导致错误的 Linq 更新 NVarChar(MAX) 列
c# - System.DirectoryServices.DirectoryServicesCOMException : An operations error occurred.
c# - 如何在 Entity Framework 5 的 Linq 中使用 DbGeography.Filter?
c# - SynchronizationContext Send() 应该是同一个线程?