多数耗时操作可以异步执行,推荐async/await. 但和UI相关的部分仅能在UI线程执行,这时UI线程的耗时操作,导致界面卡死,不够友好. 我们可以创建一个单独的UI线程显示一个正在加载的窗口,可以在窗口显示一些动画之类的. 如果是WinForms那么很容易做到. Application.Run(new LoadingForm()); WPF没有提供这样简单的方式,官方文档中有示例<多窗口.多线程>,官方例子 ExceptionHandlingSecondaryUIThread 经过简化后…
 Excel在任务栏中只显示一个窗口的解决办法  以前朋友遇到过这个问题,这次自己又遇到了,习惯了以前的那种在任务栏中显示全部窗口,方便用Alt+Tab键进行切换. 如果同时打开许多Excel工作簿,在桌面任务栏中通常会显示多个工作簿窗口按钮.如果任务栏只中显示了一个Excel窗口按钮,所有的工作簿窗口只出现在Excel程序窗口内部,可能是相关的设置被改动了,可以通过下面方法改回设置: 在Excel 2003中单击菜单“工具→选项”,选择“视图”选项卡,选择“任务栏中的窗口”. 在Excel 2…
这一节教程的内容会比较少,我们仅仅是对上一节教程中的代码进行扩展,在窗口中渲染一个三角形出来. 本节我们以下图所示正方形来讲解OpenGl中的坐标系统.当沿着Z轴负方向看时,可见顶点的坐标必须在这个正方形内,这样视口变换才可以將它们映射到窗口中的可见区域. 点(-1.0,-1.0)对应窗口的左下角,(-1.0,1.0)对应窗口的左上角,依此类推.如果指定一个顶点在这个正方形之外,构成的三角形在这个正方形之外的部分会被裁剪掉,将会看不到这部分. 显示三角形代码 /* Copyright 2010…
准备知识 在本文中我们将会接触到OpenGl的扩展库GLEW( OpenGL Extension Wrangler Library),GLEW可以帮助我们处理OpenGl中繁琐的扩展管理.一旦初始化后可以查询当前平台中所有可用的扩展,能够动态的加载它们并通过一个单独的头文件来方便的使用这些扩展. 本教程中我们第一次使用的顶点缓存对象(VBOs),正如名字所暗示的,顶点缓存对象是用来存放顶点的.你能够想象到的3D世界中的所有对象,无论是怪物.城堡还是一个简单的旋转立方体,在计算机中都是通过一组顶点…
1. 子线程的Toast怎么显示不出来? 因为Toast在创建的时候会依赖于一个Handler,并且一个Handler是需要有一个Looper才能够创建,而普通的线程是不会自动去创建一个Looper对象,比如说在某个Activity中能new一个Handler是因为Android系统在启动一个Activity的时候会默认的创建一个Looper对象. 因此为了能够在子线程中显示Toast,你可以在开启的子线程中执行Looper.prepare()来构建一个Looper,然后在显示Toast,但是不…
dialog是依附于activity存在的.但是app中经常需要使用以下的情况,在service中做一些后台操作,在某个临界条件满足时,显示一个dialog告知用户.这时dialog无法直接从service中启动起来,会报出android.view.WindowManager$BadTokenException:Unable to add window的错误 参考service中显示一个dialoghttp://blog.csdn.net/huxueyan521/article/details/…
每个连接都有自己的独立事务,会造成数据的不一致 这组操作应该要么一起操作成功,要么一起操作失败, 应该使用同一个连接,只有一个能控制事务的对象 需要使用ThreadLocal对象把Connection和当前线程绑定, 从而使一个线程中只有一个能控制事务的对象 关于ThreadLocal: Java并发编程:深入剖析ThreadLocal 事务控制应该都是在业务层 创建一个连接的工具类,它用于从数据源中获取一个连接,并且实现和线程的绑定 /** * 连接的工具类,它用于从数据源中获取一个连接,并且…
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:C#中只使用Invokerequired来判断是不是UI线程可靠吗?.…
写 WPF 的童鞋可能都会碰到 在非UI线程中访问 UI 异常的问题.这是为了防止数据不一致做的安全限制. 子线程中更新UI还要交给主线程更新,引用满天飞,实在是麻烦. 接下来,我们推出一个可以称之为框架的解决方案(拍砖的时候轻点). 一:解决判断当前线程是主线成的问题 在 C# 中 微软好像没有给出直接判断当前线程是否是主线程的方案,至少我是没找到. 如果您有更好的解决方案请留言哦!!!! /// <summary> /// Lyx 线程框架 类 /// </summary> p…
转载: http://blog.csdn.net/huxueyan521/article/details/8954844 通过windowmananger来在窗口上添加view的时候,需要设置alert参数,而且要添加alert权限 mLayoutParams = new WindowManager.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, LayoutParams.TYPE_SYSTEM_ALERT,…