0
我的應用程序出現問題,使用WatiN編寫的C#代碼。 應用程序創建幾個線程,並且每個線程打開瀏覽器和相同的頁面。
該頁面由HTML選擇元素組成:
和提交按鈕。
瀏覽器應該選擇一個特定的選項,並在同一時間點擊提交按鈕但他們做它「一個」。 這裏是主要行代碼:Watin多線程問題
[STAThread]
static void Main(string[] args)
{
for (int i = 0; i < numOfThreads;i++)
{
var t = new Thread(() => RealStart(urls[i]));
t.SetApartmentState(ApartmentState.STA);
t.IsBackground = true;
t.Start();
}
}
private static void RealStart(string url)
{
using (var firstBrowser = new IE())
{
firstBrowser.GoTo(url);
firstBrowser.BringToFront();
OptionCollection options = firstBrowser.SelectList("Select").Options;
options[1].Select();
firstBrowser.Button(Find.ByName("Button")).Click();
firstBrowser.Close();
}
}
什麼的「一一」的選擇,而不是同時選擇的原因是什麼?
我認爲該框架的一部分使用鎖...雖然沒有檢查。 – Kabbalah
是否可以繞過或取消鎖定? @Kabbalah –
否。因爲鎖用於使代碼線程安全。通過刪除它們,您將無法在多個線程中調用Button.Click。 同樣,我沒有實際檢查框架是否使用鎖。但這很可能是這種情況。 – Kabbalah