C#多线程更新/从主阵列读取
我正在开发一个将同时执行多个搜索的应用程序。每一个都将在它自己的线程上。每个线程都需要检查一个数组,以查看是否已经显示结果。如果没有显示结果,则将结果显示给用户并将其添加到主数组中。因此,每个线程都需要能够同时读取和写入主阵列 我来自PHP和JS背景,所以我对线程和C#非常陌生。这里的任何帮助都将不胜感激C#多线程更新/从主阵列读取,c#,multithreading,C#,Multithreading,我正在开发一个将同时执行多个搜索的应用程序。每一个都将在它自己的线程上。每个线程都需要检查一个数组,以查看是否已经显示结果。如果没有显示结果,则将结果显示给用户并将其添加到主数组中。因此,每个线程都需要能够同时读取和写入主阵列 我来自PHP和JS背景,所以我对线程和C#非常陌生。这里的任何帮助都将不胜感激 编辑:我正在使用BackgroundWorker来进行多线程处理。我不知道在使用.NET 4.5时使用BackgroundWorker的基本原理 因此,我想补充一点: 帮自己一个忙并使用(Ta
编辑:我正在使用BackgroundWorker来进行多线程处理。我不知道在使用.NET 4.5时使用
BackgroundWorker的基本原理
因此,我想补充一点:
帮自己一个忙并使用(Task.Run
/Task.Factory.StartNew()
,Parallel.For
/Parallel.ForEach
,具体取决于您的需要)
您必须锁定(例如通过或)或使用命名空间中的集合
现在这是一个有点冗长的话题,所以如果你有任何进一步的疑问或问题,我会适当地编辑答案。在我链接的MSDN页面上有几个例子。我不知道在您使用.NET 4.5时使用BackgroundWorker
的理由
因此,我想补充一点:
帮自己一个忙并使用(Task.Run
/Task.Factory.StartNew()
,Parallel.For
/Parallel.ForEach
,具体取决于您的需要)
您必须锁定(例如通过或)或使用命名空间中的集合
现在这是一个有点冗长的话题,所以如果你有任何进一步的疑问或问题,我会适当地编辑答案。我链接的MSDN页面上有几个示例。如果我没记错的话,PHP中的“数组”在键/值查找数据结构方面类似于字典
在这种情况下,如果您使用的是.Net的最新版本,“from”命名空间听起来是最容易使用的选项
祝你好运,如果我没记错的话,PHP中的“数组”在键/值查找数据结构方面类似于字典
在这种情况下,如果您使用的是.Net的最新版本,“from”命名空间听起来是最容易使用的选项
祝你好运,你的目标是哪个.NET版本?我认为你应该实现某种监视器()来控制对阵列的访问。难道监视器不能锁定资源吗?当另一个线程尝试访问锁定的资源时,会发生什么情况?它是等待还是出错?您的目标是哪个.NET版本?我认为您应该实现某种监视器()来控制对阵列的访问。监视器不锁定资源吗?当另一个线程试图访问锁定的资源时会发生什么情况,它是等待还是出错?谢谢提示。我正在调查第三方物流。谢谢你的提示。我正在调查第三方物流。