thread-C# 回车触发一个打印函数,会卡死,如果打印前sleep(3000)就正常。求指教 。

问题描述

C# 回车触发一个打印函数,会卡死,如果打印前sleep(3000)就正常。求指教 。

C# 界面 回车触发一个打印函数,会卡死,如果在打印的函数里,在打印局部方法执行前thread.sleep(3000)就正常。 一定大于等于3秒,2秒也会卡死。但这样打印会很慢,怎样解决。谢谢大家指教下。

解决方案

新开一个线程可以不?触发函数里控制线程就行,把打印函数放在线程里

解决方案二:

打印本身是一个耗时的过程,你应该开线程,把耗时操作放到线程中,这样就不会阻塞主线程,界面就不会卡死了。

解决方案三:

1.使用线程和委托来执行这个耗时的操作,开一条新的线程来执行打印的方法,这个方法判断当前是否主线程调用,
是的话就使用委托来执行这个打印的方法。
2.使用异步编程来处理,通过回调函数来通知执行结果,期间可以新开线程做些界面响应(进度条什么的)或者一直阻塞到打印完成为止。
3.使用C#控件BackgroundWork发起后台操作调用。

解决方案四:

使用线程和委托来执行这个耗时的操作,开一条新的线程来执行打印的方法,这个方法判断当前是否主线程调用,
是的话就使用委托来执行这个打印的方法。

解决方案五:

为了不锁死UI,造成界面卡顿,应该将打印的操作额外开一个线程操作。

时间: 2024-09-13 00:33:05

thread-C# 回车触发一个打印函数,会卡死,如果打印前sleep(3000)就正常。求指教 。的相关文章

音频-我用java写了一个小游戏,想插入背景音乐但不太会,求指教

问题描述 我用java写了一个小游戏,想插入背景音乐但不太会,求指教 package text; import java.io.*; import javax.sound.sampled.*; public class text { public static void main(String[] args) { // TODO Auto-generated method stub //创建一个实例 AePlayWave apw = new AePlayWave("G:\照片\Sleep Awa

js-怎样写一个点击事件,除了某一个div区域不执行,其它点击都执行,求指教

问题描述 怎样写一个点击事件,除了某一个div区域不执行,其它点击都执行,求指教 $('body').not($("#dropzone")).bind('click', function() { //$("#dropzone").slideUp("normal"); }); 解决方案 $('body').bind('click', function (e) { var o = e.target; if($(o).closest('#dropzon

【开源】QuickPager ASP.NET2.0分页控件V2.0.0.7 增加了一个js函数的分页方式。

       昨天在csdn上看到一个人提出来了一种分页的需求,大致是分页控件只负责绘制总页数.上一页.下一页等信息,然后在用户翻页的时候可以触发一个js函数,然后自己实现这个js函数.并不需要提交表单,他想用ajax的方式来获取数据,但是又不想使用微软的ajax.        大概的需求就是这样的(至少我的理解是这样的),不知道吴旗娃的分页控件是不是支持这种需求.不过我的分页控件还没有涉及到ajax,原因是我还不会用ajax,那么是不是可以先实现这种需求呢?想了一下,比较简单,只要继承Pag

急求大侠:C#中用回车转移控件的焦点,怎么实现最后一个回车按下来触发一个事件

问题描述 1privatevoidForm1_KeyPress(objectsender,KeyPressEventArgse)2{3if(e.KeyChar==(char)13)4{5e.Handled=true;6SendKeys.Send("{TAB}");7}8}用上面的代码可以实现按回车键实现tab键的功能,但是我要确定到最后一个控件的时候要触发一个事件,或是调用一个函数请各位大侠帮帮小弟!先谢过了! 解决方案 解决方案二:你可以加上判断最后一个控件Focused是否是tru

一个通用的Datagrid导出Excel打印的源函数

datagrid|excel|打印|导出excel|函数 一个通用的Datagrid导出Excel打印的源函数闲暇之余,写成函数,供新人研究学习 'Power by:Landlordh '列宽默认为datagird的tablestyles(0)列宽的五分之一 'G2E(dg1) Public Function G2E(ByVal dg As DataGrid) Dim dt As New DataTable Try dt = CType(dg.DataSource, DataTable) Cat

fullcalendar点击prve或者next按钮翻月时,触发一个函数

问题描述 fullcalendar点击prve或者next按钮翻月时,触发一个函数 我就想当点击prve或者next按钮翻月时,触发一个函数,然后函数里面做些其他的操作. 解决方案 用jquery找出上下按钮添加click事件就行了 fc1.5用这个 $('#calendar').find('.fc-button-prev,.fc-button-next').click(function(){alert($(this).hasClass('fc-button-prev')?'prev':'nex

php写一个函数,实现扫描并打印出自定目录下(含子目录)所有jpg文件名

写一个PHP函数,实现扫描并打印出自定目录下(含子目录)的所有jpg文件名的方法 <?php $dir = "E:\照片\\"; //打印文件夹中所有jpg文件 function printJpg($dir,$deep = ""){ $dirSource = dir($dir); while($d = $dirSource->read()){ if($d == "." || $d == ".."){ continu

API之打印函数

AbortDoc 取消一份文档的打印 AbortPrinter 删除与一台打印机关联在一起的缓冲文件 AddForm 为打印机的表单列表添加一个新表单 AddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件.它也会为作业分配一个作业编号 AddMonitor 为系统添加一个打印机监视器 AddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口 AddPrinter 在系统中添加一台新打印机 AddPrinterConnection 连接指定

用java写一个main函数,打印出1-6这这六个数字的所有不同的排列

1.2.2.3.4.5这六个数字,用java写一个main函数,打印出所有不同的排列, 如:512234.412345等.要求:"4"不能在第三位,"3"与"5"不能相连. package com.test; import java.util.ArrayList; import java.util.List; /** * 1.2.2.3.4.5这六个数字,用java写一个main函数,打印出所有不同的排列, 如:512234.412345等.要求