C# 多线程从主数组更新/读取

标签 c# multithreading

<分区>

我正在开发一个将同时执行多个搜索的应用程序。每一个都将在它自己的线程上。每个线程都需要检查一个数组以查看结果是否已经出现。如果它没有显示该结果,则将结果显示给用户并将其添加到主数组中。所以每个线程都需要能够同时读写主数组。

我有 PHP 和 JS 背景,所以我对线程和 C# 非常陌生。此处的任何帮助将不胜感激。

编辑:我正在使用 BackgroundWorker 进行多线程处理。

最佳答案

我不知道在您要使用 .NET 4.5 时使用 BackgroundWorker 的基本原理

所以,如果我可以补充:

  1. 帮自己一个忙,使用Task Parallel Library (Task.Run/Task.Factory.StartNew(), Parallel.For/Parallel.ForEach 取决于您的需求)。
  2. 您要么必须锁定(例如通过 lockSlimReadWriterLock ),要么使用来自 Collections.Concurrent 的集合命名空间。

现在继续这个话题有点冗长,所以如果您还有任何疑问或问题,我会适当编辑答案。在我链接的 MSDN 页面上有一些示例。

关于C# 多线程从主数组更新/读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15313509/

相关文章:

c# - 并行长时间运行任务的时间优化

java - 客户端服务器程序的多线程

multithreading - 当我在Winsock connect函数中强制终止线程时会发生什么?

c# - 使用导致错误的 Linq 更新 NVarChar(MAX) 列

c# - System.DirectoryServices.DirectoryServicesCOMException : An operations error occurred.

c# - 如何在 Entity Framework 5 的 Linq 中使用 DbGeography.Filter?

c# - 正则表达式查找 Href 值

c# - SynchronizationContext Send() 应该是同一个线程?

c++ - 如何在 boost::unique_lock<boost::mutex> 上尝试锁定

java - StringBuffer 追加 ("")