请看下面的代码。 我在C#中使用MultiThreading来解决问题。 这个例子来自一些手册。 在我的主要功能,我尝试创建三个线程。线程创建
你能告诉我两个线程(有错误)应该如何正确创建?
谢谢!
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();
}
}
这可能是一个复制粘贴错误,但是你错过了密切的')'在' Program.Main'。应该是'Thread bbb = new Thread(MonitorMethodAccess.ModifyNumericField(12));' – Jacob
他们仍然使用'.Start()'方法启动线程吗? (即使'aaa'看起来就像坐在那里一样。) – 2013-07-31 21:09:11