我有一个txt文件ABC.txt,它将由多个进程读取和写入.因此,当一个进程正在读取或写入文件ABC.txt时,必须锁定文件ABC.txt,以便任何其他进程无法读取或写入它.我知道枚举System.IO.FileShare可能是处理这个问题的正确方法.但我用另一种方式,我不确定它是否正确.以下是我的解决方案.
我在文件夹中添加了另一个文件Lock.txt.在我可以读取或写入文件ABC.txt之前,我必须能够从文件Lock.txt中读取.在我读取或写入文件ABC.txt后,我必须释放该功能.以下是代码.
#region Enter the lock
FileStream lockFileStream = null;
bool lockEntered = false;
while (lockEntered == false)
{
try
{
lockFileStream = File.Open("Lock.txt", FileMode.Open, FileAccess.Read, FileShare.None);
lockEntered = true;
}
catch (Exception)
{
Thread.Sleep(500);
}
}
#endregion
#region Do the work
// Read from or write to File ABC.txt
// Read from or write to other files
#endregion
#region Release the lock
try
{
if (lockFileStream != null)
{
lockFileStream.Dispose();
}
}
catch
{
}
#endregion
Run Code Online (Sandbox Code Playgroud)
在我的电脑上,似乎这个解决方案运行良好,但我仍然无法确定它是否合适.
编辑:多个进程,而不是同一进程中的多线程.
我正在使用Intel XDK开发一个Web应用程序,该应用程序可通过Cordova在线构建我的应用程序。我使用初始屏幕插件添加了初始屏幕。当我启动我的应用程序时,启动屏幕出现。但是在启动屏幕显示之前,黑屏会先显示一小会儿。我如何使它立即显示初始屏幕而没有先出现黑屏。
我用Google搜索了几天。然后我发现许多其他人都遇到了这个问题。但是似乎解决方案不能帮助我..
我尝试将AutoHideSplashScreen设置为false,并且SplashScreenDelay = 10000(或更高版本),并在所有事物准备就绪(app.Ready,deviceready ..)时隐藏启动屏幕。
任何帮助将不胜感激,谢谢。
我已经使用ASP.NET MVC将近4年了.我喜欢它,我对ASP.NET vNext(可能是5)非常感兴趣.我想知道它的生命周期(不是MVC 6).
新管道也支持OWIN.
这个词支持的意思是什么?这是否意味着ASP.NET vNext实现了OWIN的生命周期或类似"我们可以向ASP.NET vNext应用程序添加中间件"之类的东西?