2012-07-28 60 views
-1

我想使用用C++/cli創建的.dll文件,該文件包含c#wpf項目中的普通c代碼。 c代碼的功能需要永久調用。這個函數在一個c命令行應用程序的主函數中被直接調用。無限期調用方法

如何從wpf c#項目永久調用一個函數而不干擾其他應用程序?我想這應該是非常簡單的,但林新的wpf和相當新的。淨。

+0

替換x什麼是「永久的電話」是什麼意思? – 2012-07-28 19:26:58

+0

在嵌入式編程中,我們調用每5或10毫秒(永久)調用的函數Perm-Functions。我無法理解「無限期」所謂的調用方法。 – user1550097 2012-07-28 20:30:45

回答

0
using System.Threading; 

Thread t = new Thread(()=>{ 
while(true) 
{ 
//call your method here... 
Thread.Sleep(500); //optional if you want a pause between calls. 
} 
}); 
t.IsBackground = true; 
t.Start(); 
1

您可以在另一個thread上有while(true)循環。

1

如果我理解正確,你想要做的就是繼續調用方法嗎?使用計時器:

using System.Windows.Threading;包括在文件的頂部。然後寫:

DispatcherTimer timer = new DispatcherTimer(); 
timer.Interval = TimeSpan.FromMilliseconds(x); //x is the amount of milliseconds you want between each method call 

timer.Tick += (source, e) => 
{ 
    method(); 
}; 
timer.Start(); 

定時器都會在每一個刻度運行你的方法,你可以在匿名方法編寫額外的代碼來控制多久/你的方法被調用多少次,當它被調用,所以上。當然,它不會干擾您的其他程序。

如果你想盡可能經常打電話給你的程序中,在第二行以1

+0

非常感謝您的幫助。使用另一個線程也可能起作用,但我更願意使用一個線程來避免多線程問題。 – user1550097 2012-07-28 20:33:21

+1

@ user1550097:你意識到定時器通常也在創建新線程,對吧? – 2012-07-29 04:46:02