Я использую поток, чтобы выполнить какой-то процесс на машине.В конце концов, прогресс сообщается в другом потоке.Чтобы обновить GUI со статусом процесса, я использую делегат, подобный этому:
public delegate void UpdateProgressDelegate(string description, int scriptnumber);
public void UpdateProgress(string description, int scriptnumber) {
if (treeView.InvokeRequired) {
treeView.Invoke(new UpdateProgressDelegate(UpdateProgress), description, scriptnumber);
return;
}
// Update the treeview
}
И для вызова этого делегата я использую:
form.UpdateProgress("Ready", 3);
Когда вызывается Invoke,Я получаю TargetParameterCountException: Несоответствие количества параметров.Я думал, что смогу это исправить, поместив параметры string и int в один объект, например, так:
public delegate void UpdateProgressDelegate(object[] updateinfo);
public void UpdateProgress(object[] updateinfo) {
string description = (string) updateinfo[0];
int scriptnumber = (int) updateinfo[1];
if (treeView.InvokeRequired) {
treeView.Invoke(new UpdateProgressDelegate(UpdateProgress), new object[] { description, scriptnumber });
return;
}
// Update the treeview
}
И для его вызова я использую:
form.UpdateProgress(new object[] {"Ready", 3});
Но это не такработать тоже.Я продолжаю получать одно и то же исключение TargetParameterCountException.Есть идеи, как я мог это исправить?Заранее спасибо!