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 –