Я пытаюсь создать приложение Windows Form. Приложение использует многопоточность, и каждый поток вызывает метод, и он обновляет элементы управления, созданные в основном потоке. Я использую invoke для обновления элементов управления, и приложение работает на сервере Windows, но оно присутствует на 64-разрядной версии Windows 7. В WIndows 7 приложение перестает делать что-либо после обновления интерфейса 2 раза. Я не знаю, какая проблема. Я пробовал с несколькими потоками и с задачей (Task.Factory.StartNew()
), и у меня был тот же результат (обновляет контроль 2 раза). Нет сообщения об ошибке. Спасибо.Многопользовательское приложение, не работающее над окнами 7
EDIT: В CallMethod()
я звоню WCF и ждет respont. Представляется, что WCF вызов возвращается что-то в течение первых двух потоков и для остальных это не ...
код:
Основной метод:
for (int i = 0; i < NoThreads; i++)
{
int index = i;
Thread t = new Thread(CallMethod);
t.Name = "Thread [" + Cicle + "] Cicle [" + i + "]";
threads[i] = t;
}
for (int i = 0; i < NoThreads; i++)
{
threads[i].Start();
}
CallMethod:
private string CallMethod()
{
try
{
//calling a webservice
string message = .....
if (txtResult.InvokeRequired)
{ txtResult.Invoke((MethodInvoker)(() => txtResult.AppendText(message))); }
catch
{throw;}
}
Пред- полагая txtResult.InvokeRequired ложна ... Ничего не происходит – spender