У меня есть класс, который я создал, и в классе я делаю несколько многопоточности.Обычно для создания многопоточности в форме я использовал бы следующий метод ...
//Thread Safe Functions
delegate void Thread_Safe_SendMessage_Progress_Callback(string sProgress);
private void Thread_Safe_SendMessage_Progress(string sProgress)
{
if (this.InvokeRequired)
{
Thread_Safe_SendMessage_Progress_Callback d =
new Thread_Safe_SendMessage_Progress_Callback(Thread_Safe_SendMessage_Progress);
try
{
this.Invoke(d, new object[] { sProgress });
}
catch
{
//ObjectDisposedException
}
}
else
{
//Fire up the thread event
SendMessageThread_Progress(sProgress);
}
}
Теперь это работает отлично!На этом этапе я пытаюсь привнести многопоточность в класс, который я создал.Когда я делаю это, кажется, что все замечательно, за исключением свойства InvokeRequired, и метод Invoke не существует в моем классе.Поэтому использование this.InvokeRequired выдает ошибку ... Чтобы дать моему классу это свойство, я делаю это ... (Обратите внимание, что m_iThreadID устанавливается в конструкторе и когда поток создается для запуска с)
private bool InvokeRequired
{
get
{
//Get the current thread id
int iThreadID = System.Threading.Thread.CurrentThread.ManagedThreadId;
//Compare and return results
return (iThreadID != m_iThreadID);
}
}
Теперь осталось только метод Invoke ... Как мне заставить это работать?