Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не убивается процесс, Многопоточность 
:(
    Опции темы
arilou
Дата 2.8.2005, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



Вот нарыл в MSDN:

Код

        IAsyncResult aResult = sampleDelegate.BeginInvoke(callParameter, null, null);

        //Wait for the call to complete
        aResult.AsyncWaitHandle.WaitOne();

        callResult = sampleDelegate.EndInvoke(aResult);


Цитата(sindi8 @ 2.8.2005, 13:36)
ассинхронного процесса

Лучше говорить "асинхронного вызова", а то я, например, сразу не понял, о чем речь идет в самом первом посте smile


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
sindi8
Дата 2.8.2005, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 6.6.2005
Где: Москва

Репутация: нет
Всего: нет



MSDN читал. Пробовал воспроизвести нечто подобное, но приложение залипало на
Код

aResult.AsyncWaitHandle.WaitOne();

и как-то это сделать нормально чтоб работало у меня не получилось. В общем - если кто поделится парой строк - буду признателен. Хотелось бы узнать, как выполнить какую-то функцию по завершении работы потока.
З.Ы. слово "поток" надеюсь более корректно smile
PM MAIL   Вверх
arilou
Дата 2.8.2005, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



Вот. Тут код на VB.NET, но я думаю, ты без проблем его заюзаешь. Он реализует то, что тебе надо - fire and foget - вызвал и забыл smile

Код

Imports System.Threading

Public Class AsyncHelper
  Class TargetInfo
    Friend Sub New(ByVal d As [Delegate], ByVal arguments As Object(), Optional ByVal cbk As AsyncCallback = Nothing)
      Target = d
      Args = arguments
      CallBack = cbk
    End Sub

    Friend Target As [Delegate]
    Friend Args As Object()
    Public CallBack As AsyncCallback
  End Class

  Private Shared _dynamicInvokeShim As New WaitCallback(AddressOf DynamicInvokeShim)

  Public Shared Sub FireAndForget(ByVal d As [Delegate], ByVal cbk As AsyncCallback, ByVal ParamArray args As Object())
    ThreadPool.QueueUserWorkItem(_dynamicInvokeShim, New TargetInfo(d, args, cbk))
  End Sub

  Shared Sub DynamicInvokeShim(ByVal o As Object)
    Dim ti As TargetInfo = o
    Try
      ti.Target.DynamicInvoke(IIf(ti.Args Is Nothing, New Object() {}, ti.Args))
    Catch ex As Exception
      MsgBox(ex.ToString, , "AsyncHelper.Delegate:")
    End Try

    If Not ti.CallBack Is Nothing Then
      Try
        ti.CallBack.DynamicInvoke(New Object() {Nothing})
      Catch ex As Exception
        MsgBox(ex.ToString, , "AsyncHelper.Callback:")
      End Try
    End If
  End Sub
End Class


Это сообщение отредактировал(а) arilou - 2.8.2005, 14:54


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
sindi8
Дата 2.8.2005, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 6.6.2005
Где: Москва

Репутация: нет
Всего: нет



arilou, спасибо. Думаю разберусь.

PM MAIL   Вверх
mr.DUDA
Дата 2.8.2005, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



arilou, Visual Basic.... smile


--------------------
user posted image
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0502 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.