gpt4 book ai didi

c# - 静态代码如何与多线程一起运行?

转载 作者:可可西里 更新时间:2023-11-01 08:01:49 24 4
gpt4 key购买 nike

我正在阅读 Threading from within a class with static and non-static methods我也有类似的情况。

我有一个从资源中提取数据并根据数据创建一些运行时对象的静态方法。

static class Worker{
public static MyObject DoWork(string filename){
MyObject mo = new MyObject();

// ... does some work

return mo;
}
}

该方法需要一段时间(在本例中它正在读取 5-10mb 文件)并返回一个对象。

我想采用这种方法并在多线程情况下使用它,这样我就可以一次读取多个文件。撇开设计问题/准则不谈,多个线程将如何访问此代码?

假设我有这样的东西......

class ThreadedWorker {
public void Run() {
Thread t = new Thread(OnRun);
t.Start();
}

void OnRun() {
MyObject mo = Worker.DoWork("somefilename");

mo.WriteToConsole();
}
}

静态方法是否为每个线程运行,允许并行执行?

最佳答案

是的,该方法应该能够在多线程中正常运行。您唯一应该担心的是同时在多个线程中访问同一个文件。

关于c# - 静态代码如何与多线程一起运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2524524/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com