Ho creato un Testbox per informazioni sul threading nelle applicazioni del modulo Windows. Silverlight e Java forniscono il Dispatcher, il che aiuta molto nell'aggiornare gli elementi della GUI .Problema con il delegato Sintassi in C#
esempi di codice: Dichiarazione classe Delegate
public delegate void d_SingleString(string newText);
Crea Discussione
_thread_active = true;
Thread myThread = new Thread(delegate() { BackGroundThread(); });
myThread.Start();
Funzione Discussione Aggiornamenti
private void BackGroundThread()
{
while (_thread_active)
{
MyCounter++;
UpdateTestBox(MyCounter.ToString());
Thread.Sleep(1000);
}
}
Delega TextBox
public void UpdateTestBox(string newText)
{
if (InvokeRequired)
{
BeginInvoke(new d_SingleString(UpdateTestBox), new object[] { newText });
return;
}
tb_output.Text = newText;
}
C'è un modo per dichiarare la dichiarazione del delta nel metodo BeginInvoke ?!
qualcosa come
BeginInvoke(*DELEGATE DECLARATION HERE*, new object[] { newText });
Molte grazie, rAyt
Ama la tua Eloboration Marc. Ho appena imparato molto di più che leggere MSDN per 10 minuti :) –
Le meraviglie degli appartamenti single thread ... – Spence
Soluzione molto elegante; questa dovrebbe essere la risposta accettata per questa domanda. –