|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
[c#]Problema con "BeginInvoke"
posto il codice incriminato:
Codice:
private void TestDelegate(int id);
public MyForm()
{
InitializeComponent();
System.Timers.Timer timer = new System.Timers.Timer();
timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
timer.Interval = 5000;
timer.Enabled = true;
}
private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
mioControllo.BeginInvoke(new TestDelegate(Foo));
}
private void Foo(int id)
{
dataGrid.DataSource = someSource.Where(id == id);
}
Codice:
TargetParameterCountException was unhandled Parameter count mismatch. anzichè un System.Windows.Forms.Timer perchè non devo bloccare l'interfaccia utente durante il "refresh" Grazie a tutti !
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
Ultima modifica di RaouL_BennetH : 02-11-2012 alle 01:32. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2780
|
Il delegate che hai passato richiede un parametro, dovresti usare l'overload di BeginInvoke che prende anche un array di parametri:
http://msdn.microsoft.com/en-us/libr...gininvoke.aspx |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Codice:
private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
mioControllo.BeginInvoke( (Action) () => TestDelegate(Foo));
}
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:37.



















