Я пытаюсь сделать приложение Windows Form. Приложение использует многопоточность, и каждый поток вызывает метод и обновляет элементы управления, созданные в основном потоке. Я использую вызов для обновления элементов управления, и приложение работает на корпоративном сервере Windows, но не работает в 64-разрядной версии Windows 7. На WIndows 7 приложение перестает что-либо делать после 2-х кратного обновления интерфейса. Я не знаю, в чем проблема. Я пробовал с несколькими потоками и с задачей (Task.Factory.StartNew()
), и у меня был тот же результат (обновляет элемент управления 2 раза). Нет сообщения об ошибке. Спасибо.
EDIT: В CallMethod()
я вызываю WCF и жду ответа. Кажется, что вызов 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;}
}