0
我面对我的应用程序一个很奇怪的剪贴板行为。 我有收到一些文件,并将其保存到临时位置,并把它们放入剪贴板TCP服务器。 下面的代码的一部分:奇剪贴板行为与FileDrop格式
filename = bReader.ReadString();
int dim = bReader.ReadInt32();
byte[] buffer = new byte[dim];
buffer = bReader.ReadBytes(dim);
using (FileStream fs = new FileStream(type, FileMode.OpenOrCreate, FileAccess.Write))
{
fs.Write(buffer, 0, buffer.Length);
fs.Close();
}
String path = Path.GetFullPath(filename);
DataObject data = new DataObject();
data.SetData(DataFormats.FileDrop, true, new String[]{path});
Clipboard.SetDataObject(data, true);
我可以接收和正确保存的文件,也把他在剪贴板FileDrop数据。 问题是我只能在我的应用程序关闭时粘贴文件。这真是奇怪......
将应用程序关闭后,我可以没有问题粘贴和粘贴文件是完全正确的。
有什么建议吗? 在此先感谢
是啊,其实我设法解决这个问题。上面的代码在不同的线程中执行,每个客户端一个。我认为剪贴板方法完全是线程安全的,因为它们在文档中声明,但显然它们不是。无论如何,我通过在单个线程中调用上述代码来解决此问题。 –
确保它是线程安全的,但它不是安全问题;) –
是啊,你说得对XD –