草庐IT

阻塞IO

全部标签

c# - 可移植类库不支持System.IO,为什么?

我创建了一个可移植类库,用于我的Monodroid项目。但问题是我需要System.IO库,但不幸的是我无法添加它。我什至尝试通过“添加引用”选项添加它,但没有成功。为什么会这样?我该怎么做? 最佳答案 您不能使用System.IO,因为它不是可移植类库。System.IO进行特定于其运行的操作系统(Windows)的调用,而可移植类库是跨平台的。可以找到您正在寻找的解决方案here:Whatshouldyoudowhenyou’retryingtowriteaportablelibrarybutyouneedsomefunctio

c# - lock() 语句会阻塞进程/应用程序域中的所有线程吗?

也许这个问题听起来很愚蠢,但我不明白“关于线程和锁定的一些事情,我想得到确认(here'swhyIask)”。因此,如果我有10台服务器并且同时有10个请求到达每个服务器,那么整个服务器场就有100个请求。如果没有锁定,那就是对数据库的100个请求。如果我这样做:privatestaticreadonlyobjectmyLockHolder=newobject();if(Cache[key]==null){lock(myLockHolder){if(Cache[key]==null){Cache[key]=LengthyDatabaseCall();}}}我将执行多少数据库请求?10?

c# - 如何检查 System.IO.File.Delete 是否成功删除文件

使用system.io.file类删除文件后:System.IO.File.Delete(openedPdfs.path);如果文件被成功删除,我需要运行一些代码。只要该方法不返回任何值,我就会在delete方法之后检查文件是否存在。如果它仍然存在,我认为操作失败。问题是,删除方法工作正常,但要删除文件需要几秒钟。Exist函数返回true,因为当时它正在检查文件是否存在。我如何确定System.IO.File.Delete(openedPdfs.path);是否成功完成?代码:FileInfofile=newFileInfo(openedPdfs.path);System.IO.Fi

c# - 是否有像文件流一样阻塞的内存流

我使用的库要求我提供一个实现此接口(interface)的对象:publicinterfaceIConsole{TextWriterStandardInput{get;}TextReaderStandardOutput{get;}TextReaderStandardError{get;}}对象的读者然后被库使用:IConsoleconsole=newMyConsole();intreadBytes=console.StandardOutput.Read(buffer,0,buffer.Length);通常,实现IConsole的类具有来自外部进程的StandardOutput流。在这种

c# - 如何在没有流或系统 io 的情况下压缩字节数组

我正在尝试将图像编码为字节数组并将其发送到服务器。编码和发送部分工作正常,但我的问题是字节数​​组太大,发送时间太长,所以我认为压缩它会使它运行得更快。但实际问题是我不能使用system.io或流。我的目标是.net2.0。谢谢。 最佳答案 usingSystem.IO;usingSystem.IO.Compression;代码:publicstaticbyte[]Compress(byte[]data){MemoryStreamoutput=newMemoryStream();using(DeflateStreamdstream=

c# - 如何取消阻塞已调用 AutoResetEvent 对象上的 WaitOne 方法的线程?

下面是一个具有方法“SomeMethod”的类,它说明了我的问题。classSomeClass{AutoResetEventtheEvent=newAutoResetEvent(false);//morememberdeclarationspublicvoidSomeMethod(){//somecodetheEvent.WaitOne();//morecode}}该方法被设计成线程安全的,会在不同的线程中被调用。现在我的问题是,如何才能取消阻塞在任何时间点对“theEvent”对象调用“WaitOne”方法的所有线程?这个需求在我的设计中经常出现,因为我需要能够优雅地停止和启动我的多

c# - 如何从字符串对象中获取 System.IO.Stream

我有字符串对象。我需要将此数据传递给XYZ类型的另一个对象。但是这个XYZ类型的对象只采用System.IO.Stream。那么如何将字符串数据转换成流,让XYZ类型的对象可以使用这个字符串数据呢? 最佳答案 您必须选择一种文本编码来将字符串转换为字节数组,然后使用MemoryStream调用您的函数。例如:using(System.IO.MemoryStreamms=newSystem.IO.MemoryStream(System.Text.Encoding.UTF16.GetBytes(yourString))){XYZ(ms)

c# - 我的异步任务总是阻塞 UI

在WPF4.5应用程序中,我不明白为什么当我使用await+任务时UI被阻塞:privateasyncvoidButton_Click(objectsender,RoutedEventArgse){//Task.Delayworksgreat//awaitTask.Delay(5000);doublevalue=awaitJobAsync(25.0);MessageBox.Show("finished:"+value.ToString());}privateasyncTaskJobAsync(doublevalue){for(inti=0;iawaitTask.Delay运行良好,但a

c# - 使用 System.IO.Packaging 生成 ZIP 文件

我知道通常建议使用DotNetZip或SharpZipLib库之类的库来使用.net语言(在我的例子中是C#)创建ZIP文件,但使用System并非不可能.IO.Packaging生成ZIP文件。我认为尝试在C#中开发一个例程可能会很好,它可以做到这一点,而无需下载任何外部库。有没有人有一个或多个使用System.IO.Packaging生成ZIP文件的方法的好例子? 最佳答案 让我为你谷歌这个->system.io.packaging+generate+zip第一个链接http://weblogs.asp.net/jongallo

c# - c# 中的非自动阻塞 MessageBoxes

有人知道.NET中的messageBox在关闭之前不会阻塞创建它的线程吗? 最佳答案 privatevoidShowMessageBox(stringtext,stringcaption){Threadt=newThread(()=>MyMessageBox(text,caption));t.Start();}privatevoidMyMessageBox(objecttext,objectcaption){MessageBox.Show((string)text,(string)caption);}您可以使用文本和标题调用Show