C 啟動和結束乙個執行緒

2022-02-25 13:05:08 字數 1310 閱讀 5023

在程式執行中會遇到啟動本軟體的exe問,或者啟用其它的exe檔案,已達到執行某些操作的作用。下面是兩種最常見的啟動exe檔案。

1、呼叫系統dll使用其提供的方法。

引用的dll,

[csharp]view plain

copy

print

?[dllimport("kernel32.dll")]  

public static extern int winexec(string exename, int opertype);  

呼叫,winexec(@"路徑\exe的檔名", 引數);

opertype引數如下:

[csharp]view plain

copy

print

?0: 隱藏, 並且工作列也沒有最小化圖示  

1: 用最近的大小和位置顯示, 啟用  

2: 最小化, 啟用  

3: 最大化, 啟用  

4: 用最近的大小和位置顯示, 不啟用  

5: 同 1  

6: 最小化, 不啟用  

7: 同 3  

8: 同 3  

9: 同 1  

10: 同 1  

2、最常見的processstartinfo啟動

[csharp]view plain

copy

print

?processstartinfo info = new processstartinfo();             

info.filename = @"路徑\exe的檔名";              

info.arguments = "";              

info.windowstyle = processwindowstyle.minimized;             

process pro = process.start(info);              

pro.waitforexit();  

3、結束啟動的exe的程序

[csharp]view plain

copy

print

?process allprogresse = system.diagnostics.process.getprocessesbyname("exe的程序名");  

foreach (process closeprogress in allprogresse)  

C 如何優雅的結束乙個執行緒

有乙個無線迴圈的執行緒需要時時接收資料,如下 class eventclass event recedatasdone?invoke this,eventargs.empty public void stoprecedatas class program ec.startrecedatas syst...

執行緒的啟動和結束

生命週期 建立 就緒 執行 阻塞 終止 狀態標識 new runnable running blocked,timed waiting,wating terminated wating 呼叫wait,join,notyfy blocked synchroinzed lock timed waitin...

如何立即結束乙個執行緒?

最初的做法是在每次迴圈時判斷乙個標誌位 bool 如果為false就停止迴圈,執行緒隨即結束。但是這樣帶來的乙個問題是由於迴圈每次都要間隔幾秒,sleep一下,會導致執行緒無法立即結束,最長會有那n秒的延遲,這顯然不是我所希望看到的。dispatch async dispatch get globa...