質問編集履歴
2
ウィンドウメッセージ処理の追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -94,8 +94,6 @@
|
|
94
94
|
|
95
95
|
### 追記① EverySecProcessの呼出元について
|
96
96
|
|
97
|
-
|
98
|
-
|
99
97
|
スタートアップフォームに作成したtmr_OneSecのTickイベントにて呼んでいます。
|
100
98
|
|
101
99
|
```VB.NET
|
@@ -115,4 +113,35 @@
|
|
115
113
|
End If
|
116
114
|
End Sub
|
117
115
|
|
116
|
+
```
|
117
|
+
|
118
|
+
### 追記② ウィンドウメッセージの処理
|
119
|
+
|
120
|
+
大変申し訳ありません。
|
121
|
+
改めて見直したところ対象フォームのウィンドウメッセージをオーバーライドしていることが分かりました。
|
122
|
+
(デバイスの利用の為に作成したが消し忘れていたようです)
|
123
|
+
|
124
|
+
この関数をコメントアウトしたところ少し見た限りではモジュール①の状態でもリークしないようになりました。
|
125
|
+
しばらく様子を見たいと思います。
|
126
|
+
|
127
|
+
画面更新等の処理はないとの間違った情報を提示してしまい申し訳ありませんでした。
|
128
|
+
|
129
|
+
|
130
|
+
また新たな疑問として下記の処理でリークする理由(なぜLabelのtextchangeでリークするのか)についても、詳しく調べていきたいと思います。
|
131
|
+
|
132
|
+
```VB.NET
|
133
|
+
Protected Overrides Sub WndProc(ByRef m As Message)
|
134
|
+
SPREAD.SuspendLayout()'別のスプレッドシートの描画停止処理
|
135
|
+
Try
|
136
|
+
Select Case m.Msg
|
137
|
+
''Case WINDOW_MESSAGE._DIOEVENT
|
138
|
+
''SignalInput(Integer.Parse(m.WParam.ToString)) '監視対象の機器&立ち上がり信号の場合、信号受信処理実行
|
139
|
+
Case Else
|
140
|
+
MyBase.WndProc(m) '<フォームの標準処理の実行>
|
141
|
+
End Select
|
142
|
+
Catch ex As Exception
|
143
|
+
SaveErrorLog(MethodBase.GetCurrentMethod.Name, ex, "m:" & m.Msg)
|
144
|
+
End Try
|
145
|
+
SPREAD.ResumeLayout()
|
146
|
+
End Sub
|
118
147
|
```
|
1
早速の返信ありがとうございます。EverySecProcessの呼出元を質問文に追記しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -87,4 +87,32 @@
|
|
87
87
|
- 開発環境
|
88
88
|
開発ツール: Visual Studio 2012
|
89
89
|
言語: VB.NET
|
90
|
-
対象のフレームワーク: .Net Flamework 4.5
|
90
|
+
対象のフレームワーク: .Net Flamework 4.5
|
91
|
+
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
### 追記① EverySecProcessの呼出元について
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
スタートアップフォームに作成したtmr_OneSecのTickイベントにて呼んでいます。
|
100
|
+
|
101
|
+
```VB.NET
|
102
|
+
|
103
|
+
Private Sub tmr_OneSec_Tick(sender As Object, e As EventArgs) Handles tmr_OneSec.Tick
|
104
|
+
If MyStatus.IsInitialization Then '初期設定中はタイマー処理は実施しない
|
105
|
+
Exit Sub
|
106
|
+
End If
|
107
|
+
|
108
|
+
EverySecProcess() '毎秒処理の実行
|
109
|
+
|
110
|
+
If OneMinuteCount >= 59 Then '毎分処理の実行
|
111
|
+
OneMinuteCount = 0
|
112
|
+
EveryMinProcess()
|
113
|
+
Else
|
114
|
+
OneMinuteCount += 1
|
115
|
+
End If
|
116
|
+
End Sub
|
117
|
+
|
118
|
+
```
|