[Tween-svn] [1130] 終了時にStream閉じるように

アーカイブの一覧に戻る

svnno****@sourc***** svnno****@sourc*****
2010年 11月 29日 (月) 20:52:04 JST


Revision: 1130
          http://sourceforge.jp/projects/tween/svn/view?view=rev&revision=1130
Author:   kiri_feather
Date:     2010-11-29 20:52:04 +0900 (Mon, 29 Nov 2010)

Log Message:
-----------
終了時にStream閉じるように

Modified Paths:
--------------
    branches/UserStream/Tween/Tween.vb
    branches/UserStream/Tween/Twitter.vb


-------------- next part --------------
Modified: branches/UserStream/Tween/Tween.vb
===================================================================
--- branches/UserStream/Tween/Tween.vb	2010-11-29 10:17:11 UTC (rev 1129)
+++ branches/UserStream/Tween/Tween.vb	2010-11-29 11:52:04 UTC (rev 1130)
@@ -313,6 +313,7 @@
 
     Private Sub TweenMain_Disposed(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Disposed
         '後始末
+        If tw IsNot Nothing Then tw.Dispose()
         SettingDialog.Dispose()
         TabDialog.Dispose()
         SearchDialog.Dispose()
@@ -1237,7 +1238,6 @@
         addCount = _statuses.SubmitUpdate(soundFile, notifyPosts, isMention)
 
         If _endingFlag Then Exit Sub
-
         'リストに反映&選択状態復元
         Try
             For Each tab As TabPage In ListTab.TabPages
@@ -1254,9 +1254,9 @@
                     Catch ex As Exception
                         'アイコン描画不具合あり?
                     End Try
-                    Me.SelectListItem(lst, _
-                                      _statuses.IndexOf(tab.Text, selId(tab.Text)), _
-                                      _statuses.IndexOf(tab.Text, focusedId(tab.Text)))
+                    'Me.SelectListItem(lst, _
+                    '                  _statuses.IndexOf(tab.Text, selId(tab.Text)), _
+                    '                  _statuses.IndexOf(tab.Text, focusedId(tab.Text)))
                 End If
                 lst.EndUpdate()
                 If tabInfo.UnreadCount > 0 Then
@@ -1295,7 +1295,6 @@
             ex.Data("Msg") = "Ref2"
             Throw
         End Try
-
         '新着通知
         NotifyNewPosts(notifyPosts,
                        soundFile,

Modified: branches/UserStream/Tween/Twitter.vb
===================================================================
--- branches/UserStream/Tween/Twitter.vb	2010-11-29 10:17:11 UTC (rev 1129)
+++ branches/UserStream/Tween/Twitter.vb	2010-11-29 11:52:04 UTC (rev 1130)
@@ -37,6 +37,8 @@
 
 
 Public Class Twitter
+    Implements IDisposable
+
     Delegate Sub GetIconImageDelegate(ByVal post As PostClass)
     Private ReadOnly LockObj As New Object
     Private followerId As New List(Of Long)
@@ -2910,7 +2912,7 @@
         Me._streamBypass = True
         If userStream IsNot Nothing Then userStream.Dispose()
         userStream = Nothing
-        RaiseEvent UserStreamStopped()
+        If Not _endingFlag Then RaiseEvent UserStreamStopped()
     End Sub
 
     Private Sub ReconnectUserStream()
@@ -3041,4 +3043,37 @@
 #End Region
 
     End Class
+
+#Region "IDisposable Support"
+    Private disposedValue As Boolean ' 重複する呼び出しを検出するには
+
+    ' IDisposable
+    Protected Overridable Sub Dispose(ByVal disposing As Boolean)
+        If Not Me.disposedValue Then
+            If disposing Then
+                ' TODO: マネージ状態を破棄します (マネージ オブジェクト)。
+                Me.StopUserStream()
+            End If
+
+            ' TODO: アンマネージ リソース (アンマネージ オブジェクト) を解放し、下の Finalize() をオーバーライドします。
+            ' TODO: 大きなフィールドを null に設定します。
+        End If
+        Me.disposedValue = True
+    End Sub
+
+    ' TODO: 上の Dispose(ByVal disposing As Boolean) にアンマネージ リソースを解放するコードがある場合にのみ、Finalize() をオーバーライドします。
+    'Protected Overrides Sub Finalize()
+    '    ' このコードを変更しないでください。クリーンアップ コードを上の Dispose(ByVal disposing As Boolean) に記述します。
+    '    Dispose(False)
+    '    MyBase.Finalize()
+    'End Sub
+
+    ' このコードは、破棄可能なパターンを正しく実装できるように Visual Basic によって追加されました。
+    Public Sub Dispose() Implements IDisposable.Dispose
+        ' このコードを変更しないでください。クリーンアップ コードを上の Dispose(ByVal disposing As Boolean) に記述します。
+        Dispose(True)
+        GC.SuppressFinalize(Me)
+    End Sub
+#End Region
+
 End Class



Tween-svn メーリングリストの案内
アーカイブの一覧に戻る