2012-08-16 17 views
2

我做LightSwitch中一個新的按鈕,並把這個代碼中只打印一個文件:打印的LightSwitch HTML文件 - System.UnauthorizedAccessException的:無效的跨線程訪問

partial void StampaDeposito_Execute() 
{ 
    PrintDocument printInvoice = new PrintDocument(); 

    printInvoice.PrintPage += 
     new EventHandler<PrintPageEventArgs>(printInvoice_PrintPage); 
    printInvoice.Print("TemplateEmail.htm"); 
} 

void printInvoice_PrintPage(object sender, PrintPageEventArgs ev) 
{ 
    ev.HasMorePages = false; 
} 

但是當我按一下按鈕出現以下錯誤:System.UnauthorizedAccessException: Invalid cross-thread access

解決方法是否有解決方法?

回答

0

試試這個:

using Microsoft.LightSwitch.Threading 

partial void StampaDeposito_Execute() 
{ 
    Dispatchers.Main.BeginInvoke(() => { 
     PrintDocument printInvoice = new PrintDocument(); 

     printInvoice.PrintPage += 
      new EventHandler<PrintPageEventArgs>(printInvoice_PrintPage); 
     printInvoice.Print("TemplateEmail.htm"); 
    }); 

} 

void printInvoice_PrintPage(object sender, PrintPageEventArgs ev) 
{ 
    ev.HasMorePages = false; 
} 

當您收到線程訪問錯誤,往往不是你可以通過調用在main dispatcher代碼修復它。

相關問題