我有一个项目在方法中有一个静态网络浏览器。我希望同时运行此方法(包括网络浏览器),不要结束。 有:
1 method 2 button 2 textbox
static webbrowser wb;
public static look(string address)
{
wb = new webbrowser;
wb.navigate(address);
}
button1.click()
{
for(int i = 0;i <= converttoint32(textbox1.text);i++)
look(textbox2.text);
}
button2.click()
{
//close the threads.
}
< 我想使用单独的线程来创建新的网络浏览器。他们应该继续,直到 button2.click。
例如。单击 button1 方法时将创建网络浏览器(从 textbox1.text 开始计算)并且它们将保持连接。单击按钮 2 时,任务将关闭。
最佳答案
基于 this ,你可以试试。
public static object locker = new object();
public static void InitBrowser(int browser)
{
var thread = new Thread(() =>
{
// Create Browser Here
Monitor.Wait(locker);
});
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
}
button1.click()
{
Monitor.Enter(locker);
for(int i = 0;i <= converttoint32(textbox1.text);i++)
InitBrowser(textbox2.text);
}
button2.click()
{
Monitor.PulseAll(locker);
}
你可以试试这个。此解决方案未经测试,但也许您可以将其用作构建所需内容的基础。
关于c# - 如何在单独的线程中无休止地运行相同的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29777656/