gpt4 book ai didi

c# - 线程创建

转载 作者:行者123 更新时间:2023-12-03 13:20:30 25 4
gpt4 key购买 nike

请看下面的代码。
我对C#中的MultiThreading有所了解。
该示例摘自一些手册。
在我的Main函数中,我尝试创建三个线程。

您能告诉我如何正确创建两个线程(有错误)吗?
谢谢!

using System;    
using System.Threading;


public static class MonitorMethodAccess
{
private static int numericField = 1;
private static object syncObj = new object();

public static object SyncRoot
{
get { return syncObj; }
}

public static void IncrementNumericField()
{
if (Monitor.TryEnter(syncObj, 250))
{
try
{
++numericField;
}
finally
{
Monitor.Exit(syncObj);
}

}
}

public static void ModifyNumericField(int newValue)
{
if (Monitor.TryEnter(syncObj, 250))
{
try
{
numericField = newValue;
}
finally
{
Monitor.Exit(syncObj);
}
}
}

public static int ReadNumericField()
{
if (Monitor.TryEnter(syncObj, 250))
{
try
{
return (numericField);
}
finally
{
Monitor.Exit(syncObj);
}
}

return (-1);
}

}
class Program
{
static void Main(string[] args)
{
Thread aaa = new Thread(MonitorMethodAccess.IncrementNumericField);
Thread bbb = new Thread(MonitorMethodAccess.ModifyNumericField(12);//error
Thread ccc = new Thread(MonitorMethodAccess.ReadNumericField);//error

Console.ReadKey();
}
}

最佳答案

Thread bbb = new Thread(()=>MonitorMethodAccess.ModifyNumericField(12));
Thread ccc = new Thread(() => MonitorMethodAccess.ReadNumericField());

但是,如果您要像在第三个线程中一样从线程中返回值,则应该考虑使用 Tasks

关于c# - 线程创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17980869/

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