在 c# 中,我必须确保处理程序中的某个代码块只有在几个线程完成后才会执行。这些线程是从在同一处理程序中调用的方法调用的,就在上述代码块之前。使用的语法与我正在使用的 DBMS 相关,即 Starcounter。
Handle.GET("/path/to/HandlerStartTests", () =>
{
// some code
startMethod();
// some code that relies on what happens within startMethod
}
public static void startMethod()
{
QueryResultRows<PO> pos = Db.SQL<PO>("SELECT po FROM PO po");
foreach (var po in pos)
{
DbSession dbSession = new DbSession();
dbSession.RunAsync(() =>
{
// Do some stuff in the Starcounter database
});
}
}
这是出于单元测试的目的,所以我不能在startMethod
. 关于如何解决这个问题的任何想法?