【发布时间】:2012-11-21 04:44:55
【问题描述】:
我想了解如何并行执行一系列函数并能够调试每个函数..
我正在尝试创建一个控制台应用程序,它将(在编译后), 在将通过其任务调度程序执行应用程序的服务器上运行。
static void Main(string[] args)
{
Task.Factory.StartNew(
// first b. point here (will not "step into")
() =>
doFirstOne().ContinueWith(task => doSecondOne())
);
}
public static IWebDriver AllDayWbDrvr;
static string extrctdStr = "";
public static void doFirstOne()
{
// <<<<<<<----- brakePoint here nothing steps in
SeparatedClass.IeEnginGenerator IeNgn = new SeparatedClass.IeEnginGenerator();
AllDayWbDrvr = IeNgn.ExtractPageContent(firstUrl....);
var a = AllDayWbDrvr.FindElements(By.Id("anyID"));
IWebElement IwbElm = IWebDrvRdonlyColl.ElementAt(1).FindElements(By.TagName("td"))[0];
extrctedStr = IwbElm.Text;
// plan is to append extracted text to one shared file that will log all results
string fNm = @"C:\Inetpub\wwwroot\dolarRate.asp";
File.WriteAllText(fNm, extrctdStr);
AllDWbDrvr.Close();
IeNgn.service.Dispose();
}
public static void doSecondOne()
{
SeparatedClass.IeEnginGenerator IeNgn = new SeparatedClass.IeEnginGenerator();
AllDayWbDrvr = IeNgn.ExtractPageContent("secondURL....");
var a = AllDayWbDrvr.FindElements(By.ClassName("WpBody"));
IWebElement IwbElm = IeNgn.IWebDrvRdonlyColl.ElementAt(5).FindElements(By.TagName("td"))[1];
extrctedStr = IwbElm.Text;
string fNm = @"C:\Inetpub\wwwroot\anyOtherFile.asp";
File.WriteAllText(fNm, extrctdStr);
AllDWbDrvr.Close();
IeNgn.service.Dispose();
}
- 这是线程/连接函数的方式吗?
- 如何闯入已执行的 doFirst() 和 doScond() 代码?
【问题讨论】:
-
你的 main 方法从不等待任务完成,所以它会退出。
-
@IanMercer 所以我可以将 TaskFactory 配置为具有类似 in threads 、 background-true 或其他属性的属性?
标签: debugging c#-4.0 .net-4.0 task-parallel-library