C# 在web应用程序中的线程内时无法弹出
按钮点击。CS代码 这是按钮点击,它会做检查,如果一切正常。将启动线程来执行打印过程C# 在web应用程序中的线程内时无法弹出,c#,asp.net,multithreading,radwindow,C#,Asp.net,Multithreading,Radwindow,按钮点击。CS代码 这是按钮点击,它会做检查,如果一切正常。将启动线程来执行打印过程 protected void btnPrint_Click(object sender, EventArgs e) { if (SocketPrintHelper.PingIPAddress(IPAddress, 3)) { printQueue = printing.PrintRFIDPreparation(set, int.Parse(com
protected void btnPrint_Click(object sender, EventArgs e)
{
if (SocketPrintHelper.PingIPAddress(IPAddress, 3))
{
printQueue = printing.PrintRFIDPreparation(set, int.Parse(comboPrinter.SelectedValue), int.Parse(txtQTY.Text),
DataLists = new Queue<BusinessLayer.Models.PrintJob>(printQueue);
if (DataLists.Count() > 0)
{
t1 = new Thread(PrintFunction);
t1.IsBackground = true;
t1.Start();
t1.Name = "PrintThread";
lblError.Text = "Printing process is running....";
}
else
{
lblError.Text = "No record found.";
}
}
}
protectedvoid btnPrint\u单击(对象发送方,事件参数e)
{
if(SocketPrintHelper.PingIPAddress(IPAddress,3))
{
printQueue=printing.PrintRfidPrepare(set,int.Parse(comboPrinter.SelectedValue),int.Parse(txtQTY.Text),
数据列表=新队列(打印队列);
如果(DataLists.Count()>0)
{
t1=新线程(打印函数);
t1.IsBackground=true;
t1.Start();
t1.Name=“PrintThread”;
lblError.Text=“打印过程正在运行…”;
}
其他的
{
lblError.Text=“未找到任何记录。”;
}
}
}
线程函数.CS代码
这是线程函数,每条记录将重试3次,如果3次失败,将弹出RadWindow,询问用户是否需要重试或取消进程。但是,添加此线程后,RadWindow无法弹出
private void PrintFunction()
{
try
{
if (SocketPrintHelper.PingIPAddress(printer.PrinterIP, 3))
{
if (DataLists.Count() > 0)
{
foreach (var data in DataLists.Where(x => x.printed != true).OrderBy(x => x.ID))
{
byte[] byReceived = null;
bool retryFail = false;
for (int i = 1; i <= 3; i++)
{
//Do process
retryFail == true;
}
if (retryFail == true)
{
string script = "function f(){openRadWindow2(); Sys.Application.remove_load(f);}Sys.Application.add_load(f);";
ScriptManager.RegisterStartupScript(Page, GetType(), "key", script, true);
break;
}
}
}
else
{
lblError.Text = "No record found.";
}
}
}
catch (Exception ex)
{
}
}
private void打印函数()
{
尝试
{
if(SocketPrintHelper.pingIP地址(printer.PrinterIP,3))
{
如果(DataLists.Count()>0)
{
foreach(数据列表中的var数据。其中(x=>x.printed!=true)。OrderBy(x=>x.ID))
{
字节[]byReceived=null;
bool-retryFail=false;
对于(int i=1;i
<telerik:RadWindow ID="confirmWindow" runat="server" VisibleTitlebar="true" VisibleStatusbar="false"
Modal="true" Behaviors="None" Height="200px" Width="280px" Font-Bold="True" OnClientShow="true" Skin="Metro" >
<ContentTemplate>
<div style="padding-left: 30px; padding-top: 20px; width: 200px; float: left;">
<div style="text-align:center;color:red" title="Print Error!">
<asp:Label ID="lblConfirm" Font-Size="17px" Text="Print/encode RFID tag 3 times fail. Do you want retry ?" runat="server"></asp:Label>
</div>
<br />
<br />
<div style="text-align:center">
<telerik:RadButton ID="RadButton1" runat="server" Text="Retry" OnClick="ClickRetry"></telerik:RadButton>
<telerik:RadButton ID="RadButton2" runat="server" Text="Cancel" OnClick="ClickContinue"></telerik:RadButton>
</div>
</div>
</ContentTemplate>
</telerik:RadWindow>
function openRadWindow2() {
var radwindow = $find('<%=confirmWindow.ClientID %>');
radwindow.show();
//return false;
}