2010-10-19 66 views
0

可能是一個愚蠢的問題從一個不同的進程

// Program_1.exe: 
int num = 1; 
using (Process process = new Process()) 
{ 
    process.StartInfo.FileName = "Program_2.exe"; 
    if (process.Start()) 
    { 
    process.WaitForExit(); 
    } 
} 
Console.WriteLine(num.ToString()); // num should now equal 2 

僞代碼

// Program_2.exe: 
// I want this program to change the value of a variable in Program_1.exe 
Program_1.exe->num = 2; 

這是可能的改變包含在一個過程中的變量?

如果是這樣,我該怎麼辦呢?

回答

1

您需要使用某種形式的進程間通信,例如WCF。

+2

詳細說明一下,Program_1需要刻意暴露一些設施以允許Program_2影響其狀態。如果有一個標準的方式來自由修改任意程序的私有狀態,那將是一件非常非常糟糕的事情! – twon33 2010-10-20 00:04:02

+0

好的,所以沒有辦法將指向'num'的指針從* Program_1.exe *傳遞到* Program_2.exe *,以便* Program_2.exe *可以更改該指針指向的值?我只是想確認一下。謝謝twon33,你說得很好。 – JohnB 2010-10-20 17:10:12

+1

@John:對;你不能在託管代碼中這樣做。你可以看看共享內存,但這可能不是一個好主意。 – SLaks 2010-10-20 17:16:57

相關問題