Почему код не компилируется, когда он делает то же самое.Почему код не компилируется
Сообщение об ошибке:
Не удается преобразовать из System.Action в System.Threading.ThreadStart.
Код:
// Compiles and works
for (int i = 0; i < 100000; i++)
{
Thread t = new Thread(() => {
Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
Thread.Sleep(100); Interlocked.Increment(ref Count);
});
t.Start();
}
// doesn't compile
Action action =() => {
Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
Thread.Sleep(100);
Interlocked.Increment(ref Count);
};
for (int i = 0; i < 100000; i++)
{
Thread t = new Thread(action);
}
Какая ошибка у вас? –
Невозможно преобразовать из System.Action в System.Threading.ThreadStart, но не первый, делающий то же самое. – loneshark99
Что я прошу, почему компилятор знает, что он имеет одну и ту же подпись, то есть он не принимает никаких параметров и ничего не возвращает. Не будем делать это неявно, как предыдущий – loneshark99