久久国产精品亚洲艾草网_黄色视频在线免费观看_国产强伦姧在线观看_无码国产69精品久久久久网站

clipboardData:System.NullReferenceException: 未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例

廣告:

clipboardData:System.NullReferenceException: 未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例

異常詳細(xì)信息: </b>System.NullReferenceException: 未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例
行 220: IDataObject clipboardData = Clipboard.GetDataObject();
行 221: //檢查剪貼板中的對(duì)象是否是圖片,如果是圖片則將其保存為指定格式的圖片文件
<font color=red>行 222:
if (clipboardData.GetDataPresent(DataFormats.Bitmap))
</font>行 223: {
行 224:</pre>

clipboardData對(duì)象為null,一般可能不是單一線程模式造成的。
需要在處理頁(yè)面加上:[STAThread]或者webform頁(yè)面頂部加上aspcompat=“true"即可。

當(dāng)頁(yè)面中有使用creatobject創(chuàng)建com對(duì)象時(shí),就需要設(shè)置aspcompat=“true”,
這樣會(huì)使的COM對(duì)象實(shí)例在STA(單線程套間)里面執(zhí)行,否則系統(tǒng)會(huì)將其安排在MTA里面執(zhí)行。
MTA使用線程池來(lái)管理多個(gè)并發(fā)的請(qǐng)求
AutoEventWireup="true" AspCompat="true" CodeBehind="MakePhoto.aspx.cs"

如果升級(jí)到了asp.net 4.0以上,則web.config需要設(shè)置:

<appSettings>
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="false" />
</appSettings>

似乎有三種設(shè)置線程套間的方式:

第一種:是在函數(shù)前面加上一個(gè)屬性:

[STAThread]
void Main()
{
//// ...
}

第二種:是不寫[STAThread],而是給Thread對(duì)象設(shè)置ApartmentState屬性:

Program obj = new Program();
Thread t1 = new Thread(obj.f1);
t1.SetApartmentState(ApartmentState.STA);
t1.Start();

對(duì)于com組件的調(diào)用而言,好像只有第二種情況是真的設(shè)置了STA線程套間屬性,第一種似乎沒(méi)有起作用。

[STAThread] 只對(duì) C# 和 Visual Basic 中的 Main() 方法有效

第三種:加aspcompat=“true",針對(duì)aspx頁(yè)面

廣告:

編輯:Admin 時(shí)間:2021/12/20 10:45:10 閱覽:281   返回    
clipboardData
掃描關(guān)注53BK報(bào)刊官網(wǎng)
掃描關(guān)注閱速公司微信