Привет
Как правильно написать прототип для этой функции
public static void StartAborter(object state)
{
AbortWindow dlg = new AbortWindow();
System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(state), dlg);
dlg.ShowDialog();
}
В хелпе пишут что
public delegate void WaitCallback ( Object state)
а студия выдает ошибку
Error 2 'state' is a 'variable' but is used like a 'method'
на строку
System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(state), dlg);
Какой тогда тип параметра?
Спасибо
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Здравствуйте, Holms, Вы писали:
H>...
Синтаксически правильно будет так:
AbortWindow dlg = new AbortWindow();
System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(StartAborter), dlg);
...
public static void StartAborter(object state)
{
AbortWindow dlg = (AbortWindow)state;
dlg.ShowDialog();
}
Вообще, в метод QueueUserWorkItem требуется передать экземпляр делегата WaitCallback. Выделенный кусок кода как раз создаёт такой делегат, этот делегат "указывает" на метод StartAborter. Второй параметер QueueUserWorkItem передаётся при вызове метода, на который ссылается делегат (т.е. StartAborter) в качестве параметра state.
Привет
Как правильно написать прототип для этой функции
public static void StartAborter(object state)
{
AbortWindow dlg = new AbortWindow();
System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(state), dlg);
dlg.ShowDialog();
}
В хелпе пишут что
public delegate void WaitCallback ( Object state)
а студия выдает ошибку
Error 2 'state' is a 'variable' but is used like a 'method'
на строку
System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(state), dlg);
Какой тогда тип параметра?
Спасибо
WaitCallback Delegate = callback method
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение