我花了很多时间搞清楚如何做到这一点,但没有找到任何有用的解决方案.
这就是我想要做的.我在我的应用程序中生成一个巨大的二进制文件.棘手的是,这个过程需要我偶尔关闭FileStream.现在的问题是,偶尔其他应用程序(即我的病毒扫描程序)正在使用文件未被锁定的这个短暂时刻,以锁定文件本身.或其他应用程序,如Dropbox等......
结果是,下次我需要打开文件流时,它会说它被另一个进程锁定.所有这些只是很少发生,但它发生时仍然很烦人.即使我仍然获得文件访问权限,我仍然不希望dropbox上传此文件直到完成(可能需要几分钟).
我需要的是手动锁定文件的可能性,以便我的应用程序仍然可以在此文件上打开文件流,但在我再次手动解锁之前,没有其他应用程序可以.
我用伪代码画出这样的东西:
File.Lock(filepath);
//... do something that opens and closes filestreams on this file
File.Unlock(filepath);
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?"保持文件流打开"的解决方案无效.我明确地试图避免这种情况,所以请记住这一点.
我正在使用传感器来平衡机器人,但SENSOR_DELAY_FASTEST只提供10Hz的采样率,这根本不够快.有更快的采样方式吗?
有没有办法轮询传感器而不是等待SensorEvent?
我已经动态创建了线程.
static void Main(string[] args)
{
int ThreadCount =Convert.ToInt32ConfigurationManager.AppSettings["Threads"]);
List<Thread> th = new List<Thread>();
for (int i = 0; i < ThreadCount; i++)
{
Thread t = new Thread(print);
th.Add(t);
}
foreach (Thread t in th)
{
t.Start();
}
}
public static void print()
{
console.writeline("123");
}
Run Code Online (Sandbox Code Playgroud)
我想知道这个线程何时完成.完成这些线程后,我想打印一条"DONE"的消息
我怎样才能做到这一点.