Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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#_Multithreading - Fatal编程技术网

C#多线程更新/从主阵列读取

C#多线程更新/从主阵列读取,c#,multithreading,C#,Multithreading,我正在开发一个将同时执行多个搜索的应用程序。每一个都将在它自己的线程上。每个线程都需要检查一个数组,以查看是否已经显示结果。如果没有显示结果,则将结果显示给用户并将其添加到主数组中。因此,每个线程都需要能够同时读取和写入主阵列 我来自PHP和JS背景,所以我对线程和C#非常陌生。这里的任何帮助都将不胜感激 编辑:我正在使用BackgroundWorker来进行多线程处理。我不知道在使用.NET 4.5时使用BackgroundWorker的基本原理 因此,我想补充一点: 帮自己一个忙并使用(Ta

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

我来自PHP和JS背景,所以我对线程和C#非常陌生。这里的任何帮助都将不胜感激


编辑:我正在使用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版本?我认为您应该实现某种监视器()来控制对阵列的访问。监视器不锁定资源吗?当另一个线程试图访问锁定的资源时会发生什么情况,它是等待还是出错?谢谢提示。我正在调查第三方物流。谢谢你的提示。我正在调查第三方物流。