第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何正常使用c ++ / c#/ vc ++終止另一個(gè)應(yīng)用程序?

如何正常使用c ++ / c#/ vc ++終止另一個(gè)應(yīng)用程序?

C#
慕工程0101907 2021-05-02 09:10:28
我有一個(gè)運(yùn)行無(wú)限循環(huán)并在該循環(huán)中執(zhí)行一些重要功能的應(yīng)用程序。我需要為用戶提供另一個(gè)應(yīng)用程序,該應(yīng)用程序?qū)o(wú)限循環(huán)地終止該應(yīng)用程序。問(wèn)題是,如果用戶在循環(huán)內(nèi)執(zhí)行某些操作時(shí)終止了該應(yīng)用程序,該怎么辦?這將導(dǎo)致狀態(tài)不一致。我嘗試了kill()和TerminateProcess,但是它們沒(méi)有幫助。我有什么方法可以用無(wú)限循環(huán)向應(yīng)用程序發(fā)出信號(hào),以完成您的迭代并退出?我愿意使用c#,cpp和vc ++解決方案。編輯:可訪問(wèn)循環(huán)程序的源代碼。
查看完整描述

2 回答

?
慕尼黑5688855

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個(gè)贊

運(yùn)行無(wú)限循環(huán)并執(zhí)行一些重要功能的應(yīng)用程序

只要它具有“重要功能”,所討論的程序就具有從某處(例如,從文件或從網(wǎng)絡(luò)套接字)獲得新的輸入數(shù)據(jù)的方式。因此,您可以在輸入數(shù)據(jù)中添加一個(gè)特殊的令牌,其含義為“操作結(jié)束”。收到此類令牌后,程序?qū)⒅涝撽P(guān)閉自身了。這種性質(zhì)的最簡(jiǎn)單的標(biāo)記之一是常規(guī)文件或遠(yuǎn)程套接字關(guān)閉的文件結(jié)束。

我剛剛描述的方法很簡(jiǎn)單,就是所謂的“帶內(nèi)控制通道”。也就是說(shuō),您使用單個(gè)通道來(lái)饋送要處理的數(shù)據(jù)和要控制的命令(即使只有一個(gè)命令“停止”)也是如此。

替代方法是“帶外控制通道”,即在應(yīng)用程序之間傳遞命令的第二個(gè)通道。

問(wèn)題是,如果用戶在循環(huán)內(nèi)執(zhí)行某些操作時(shí)終止了該應(yīng)用程序,該怎么辦?這將導(dǎo)致狀態(tài)不一致。

您嘗試使用的方法kill是使用被稱為進(jìn)程間信號(hào)的設(shè)施的一種可能性。為了正確使用它,接收程序必須注冊(cè)一個(gè)信號(hào)處理程序例程以自行啟動(dòng)關(guān)機(jī)。發(fā)送方應(yīng)使用匹配的信號(hào)編號(hào)。使用kill(POSIX中的SIGKILL)不是最佳選擇,因?yàn)樗哂刑厥獾男袨椴⑶也荒芊峙溆凶远x信號(hào)處理程序。在POSIX中,最好使用SIGUSR1或許多其他信號(hào)之一。我不記得它的本機(jī)Windows等效項(xiàng)。

有多種機(jī)制可以組織常規(guī)操作系統(tǒng)中進(jìn)程之間的處理器間通信,請(qǐng)參閱Wikipedia到完整列表,其中包括從共享文件到命名管道和網(wǎng)絡(luò)套接字的所有內(nèi)容。選擇一種最適合您的需求。您只需要傳遞一點(diǎn)數(shù)據(jù),因此基本上最容易編程的數(shù)據(jù)就是最好的。


查看完整回答
反對(duì) 回復(fù) 2021-05-08
  • 2 回答
  • 0 關(guān)注
  • 315 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)