我有两个方法A和B。A从内部调用B方法。无论文件是否包含内容,B方法都将返回true或false。这是代码:
public static void A()
{
var isValid = B();
// Wait until "isValid" comes true
var xx = "test";
}
public static bool B()
{
// This will check for a file content
// Say C://test.txt
// If the file has some content this method will return true else false
}
我希望A方法等待并且不执行“ var xx =” test“;” 行,除非B方法返回true。您能提供一些指示如何帮助我吗?
编辑:我不能简单地使用if循环,即if(isValid),因为要检查其内容的文件是由其他线程编写的,因此我需要不断地从A内部检查B方法。代码段“ var xx =” test“;” 除非B返回true,否则要执行该代码,如果B返回true,则代码应在此处等待(在var isValid = B();处),除非B返回true,即代码应连续检查B状态。
您应该使用while循环
while (!B ()) { }
var x = "test";
这将执行B,直到返回true。更好的方法可能是实现一个在条件变为真时触发的事件。
考虑到您正在使用文件,可以查看FileSystemWatcher,它可以在文件更改时触发方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句