職場でApplication.Restart()を使ったら重複起動チェックに引っかかって2回目以降が起動してくれないのでメモ
初回の再起動では別プロセスで開いてくれるようだが、2回目以降は別プロセスにならない?(詳しい人教えてください)ようで、重複起動チェックに引っかかって再起動してくれなくなった。
そこで重複起動チェックの処理を修正することにしました。
最初はただのif文だったのを以下のように修正。
while UBound(Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName)) > 0
thread.sleep(100)
i+=100
if i >3000 then
exit while
end if
これで前プロセスの終了を3秒だけ待って起動できるようになった。
後でYさんからStopWatch使おうといわれ以下に修正。
Dim _stopWatch As New Stopwatch
_stopWatch.Start()
While UBound(Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName)) > 0
Thread.Sleep(100)
If _stopWatch.ElapsedMilliseconds > 3000 Then Exit While
End While
_stopWatch.Stop()
処理の実行時間を計るときは便利そうです。
0 件のコメント:
コメントを投稿