Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: опять потоки Добавлено: 18.02.11 23:24  

Автор вопроса:  max
привет всем.
как корректно закрыть потоки? типа есть форма из которой открыты несколько потоков. как их корректно убить, чтобы создать новые? потоки открываются по внешних dll,

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 max



Вопросов: 1
Ответов: 4
 Профиль | | #1 Добавлено: 18.02.11 23:27
если можно - простой пример, как закрыть все потоки, кроме главного.

Ответить

Номер ответа: 2
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #2 Добавлено: 19.02.11 02:14
Ты считаешь этой информации достаточно чтобы ответить на твой вопрос?

У меня есть транспортное средство, как узнать сколько у него колес?

Ответить

Номер ответа: 3
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #3 Добавлено: 19.02.11 02:15
Да, желательно пример определения количества колес у транспортного средства

Ответить

Номер ответа: 4
Автор ответа:
 max



Вопросов: 1
Ответов: 4
 Профиль | | #4 Добавлено: 19.02.11 02:38
из главной формы, нажатием кнопок, вызваны несколько процедур, которые породили потоки. вопрос-как закрыть все дочерние потоки главной формы(кроме нее). какую инфу еще надо по этому вопросу- без проблем :-)
  1.  
  2.     Private Sub TreeView1_NodeMouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeNodeMouseClickEventArgs) Handles TreeView1.NodeMouseDoubleClick
  3.         Dim mN As New myNode.myNode
  4.         mN = CType(e.Node, myNode.myNode)
  5.         usb.dispCapture()
  6.         Select Case mN.entryTreeView
  7.             Case EntriesTree.dev
  8.                 Select Case mN.dev
  9.                     Case 0
  10.                         addMulti()
  11.                         pp = mv.setViews(1, 1)
  12.                         usb.show(mN.selectedDevice, pp(0))
  13.                     Case 1
  14. .......................................


поток при вызове usb.show( и т.д..
---------------------------------------
надо при следующем клике на узел дерева сначала завершить уже имеющиеся потоки

Ответить

Номер ответа: 5
Автор ответа:
 max



Вопросов: 1
Ответов: 4
 Профиль | | #5 Добавлено: 19.02.11 02:40
потоки IsBackground = True

Ответить

Номер ответа: 6
Автор ответа:
 max



Вопросов: 1
Ответов: 4
 Профиль | | #6 Добавлено: 19.02.11 03:11
ну вот, блин - все ушли колеса качать :-)

Ответить

Номер ответа: 7
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #7 Добавлено: 19.02.11 04:59
Поток штатно завершает свою работу, когда завершает свою работу метод, находящийся в самом низу стека вызовов (т.е. тот метод, который ты указываешь в конструкторе потока).

Можно принудительно завершить поток, для этого нужно получить ссылку на него и вызвать Thread.Abort. При этом если поток уничтожается из другого потока, нужно быть готовым к тому что это может произойти когда выполняются какие-то критически важные действия, и в результате принудительного уничтожения приложение может оказаться в неопределенном состоянии и не сможет восстановиться даже если в этом месте стоят обрабочтики исключений. Подробнее можно почитать в MSDN, там приводился пример, в частности, с зависшими мониторами (lock/SyncLock).

Я думаю тебе стоит показать свой код чтоб можно было более корректно посоветовать, каким образом лучше завершать работу потоков.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам