|
как в WinForms дождатся завершения задачи ?
|
|||
---|---|---|---|
#18+
Привет. Подскажите, как заставить данный код работать: Код: c# 1. 2. 3. 4. 5. 6.
зависает при ожидании результата. Насколько я понимаю, проблема в синхронизационном контексте. В NET 4.5 можно использовать ConfigureAwait (false), что, наверное, поможет. Но, к сожалению, у меня .NET 4.0 ! И все таки, объясните пожалуйста - почему именно зависает. Чтобы знать на будущее. ЗЫ. Я вижу вариант с ContinueWith. А без него никак ? Чтобы остаться в пределах обработчика нажатия кнопки. Не хочется усложнять код. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2014, 19:19 |
|
как в WinForms дождатся завершения задачи ?
|
|||
---|---|---|---|
#18+
РостигайЯ вижу вариант с ContinueWith. А без него никак?Без него никак. РостигайЧтобы остаться в пределах обработчика нажатия кнопки. Не хочется усложнять код.Вставляем в ContinueWith лямбду и остаёмся в пределах метода и с простым кодом. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2014, 19:25 |
|
как в WinForms дождатся завершения задачи ?
|
|||
---|---|---|---|
#18+
Алексей К, Спасибо за ответ. Да наверное все же правильней через continueWith. так и кнопка не заблокирует приложение. Это правильный путь многопоточности. Просто психологически не нравится, что рабочий код выходит за пределы кнопки :) Там же еще придется делать обработку исключений в продолжении :) да... нужно привыкать к многопоточности конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2014, 19:41 |
|
|
start [/forum/topic.php?fid=20&fpage=114&tid=1402694]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
others: | 338ms |
total: | 450ms |
0 / 0 |