- 浏览: 204323 次
- 性别:
- 来自: 成都
最新评论
文章列表
C#:struct的陷阱:无法修改“xxx”的返回值,因为它不是变量(转)
public struct SpiderResult
{
public string robotName;
public string RobotName
{
get { return robotName; }
set { robotName = value; }
}
public int num;
public int totalNu ...
c,c#判断socket是否断开
1)c#
//判断是否连接
public bool IsConnected()
{
if (_socket == null)
{
return false;
}
else if (!SocketIsConnected)
{
return false;
}
...
时间转换
public static long DateTimeToTime_t(DateTime dateTime)
{
long time_t;
DateTime dt1 = new DateTime(1970, 1, 1, 0, 0, 0);
TimeSpan ts = dateTime - dt1;
time_t = ts.Ticks / 10000000 - 28800;//本地时间8小时为28800秒
return time_t;
...
C++ localtime函数需要注意的地方
- 博客分类:
- C++学习
time_t tLast = pLastFQKLineItem->GetStartTime();
time_t tNew = pNewKLineItem->GetStartTime();
tm* ptm = localtime(&tLast);
tm tmLast = *ptm;
ptm = localtime(&tNew);
tm tmNew = *ptm;
localtime返回了一个tm ...
WPF:Dispatcher.Invoke 方法,只有在其上创建 Dispatcher 的线程才可以直接访问DispatcherObject。若要从不同于在其上创建 DispatcherObject 的线程的某个线程访问 DispatcherObject,请对与 DispatcherObject 关联的 Dispatcher 调用 Invoke 或 BeginInvoke。需要强制线程安全的 DispatcherObject 的子类可以通过对所有公共方法调用 VerifyAccess 来强制线程安全。这样可以保证调用线程是在其上创建 DispatcherObject 的线程。
代码:
t ...
C#跨线程操作控件 无参数传递(转)
private void change()
{
this.label1.Text = "已发生变化";
}
private void threadchange() //通过委托处理,MSDN上又很详细用法的说明
{
MethodInvoker In = new MethodInvoker(change);
this.BeginInvoke(In);
}
...
C#跨线程操作控件 带参数传递(转)
// 定义委托
private delegate void DelegateWriteResult(string file, bool result);
// 与定义的委托签名相同的函数,操作主线程控件
private void WriteResult(string fileName, bool result)
{
if (result)
{
...
线程之间的通讯---SynchronizationContext(转载)
理解SynchronizationContext
________________________________________
SynchronizationContext 类是一个基类,可提供不带同步的自由线程上下文。 此类实现的同步模型的目的是使公共语言运行库内部的异步/同步操作能够针对不同的异步模型采取正确的行为。此模型还简化了托管应用程序为在不同的同步环境下正常工作而必须遵循的一些要求。同步模型的提供程序可以扩展此类并为这些方法提供自己的实现。(来自MSDN)
简而言之就是允许一个线程和另外一 ...
WPF经典编程模式-MVVM示例讲解
本篇从两个方面来讨论MVVM模式:
1. MVVM理论知识
2. MVVM示例讲解
一,MVVM理论知识
从上一篇文章中,我们已经知道,WPF技术的主要特点是数据驱动UI,所以在使用WPF技术开发的过程中是以数据为核心的,WPF提供了数据绑定机制,当数据发生变化时,WPF会自动发出通知去更新UI。
我们使用模式,一般是想达到高内聚低耦合。在WPF开发中,经典的编程模式是MVVM,是为WPF量身定做的模式,该模式充分利用了WPF的数据绑定机制,最大限度地降低了Xmal文件和CS文件的耦合度,也就是UI显示和逻辑代码的耦合度,如需要更换界面时,逻辑 ...
Application.DoEvent使用(转载)//msdn,有这样一个例子:
private void InitializePictureBox()
{
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.pictureBox1.BorderStyle =
System.Windows.Forms.BorderStyle.FixedSingle;
this.pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
this.pictur ...
禁用按钮是要在整个事件结束后才会响应
public class WpfApplication
{
private static DispatcherOperationCallback exitFrameCallback = new DispatcherOperationCallback(ExitFrame);
public static void DoEvents()
{
DispatcherFrame nestedFrame = new DispatcherFrame();
...
wpf主进程信号处理
public partial class Login : UserControl
{
public static EventWaitHandle ProgramStarted;
public Login()
{
InitializeComponent();
ProgramStarted = new EventWaitHandle(false, EventResetMode.AutoReset);
ThreadPool.Regist ...
TerminateThread. 如线程内部不涉及空间开辟, 只使用了 全局变量或栈空间 就没问题的.
去掉StartupUri="Login.xaml"
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
try
{
base.OnStartup(e);
Login mainWin = new Login();
mainWin.Show ...
VC退出线程的方法
标题很简单,但是要讨论的地方不少;
多线程管理,在程序开发中非常重要;虽然应用比较简单,但是要用到不出错,就很难;
这里讲一下线程的退出方法;
一:简单说一下在windows上的线程启动:
方法(1): WIN32程序通用方法;
//线程:
DWORD WINAPI thread_testexit( PVOID pParam )
{
while( g_bExtiThread )
{
Sleep(1000);
static int i = 0;
CString str;str.Format( L"%d",i++);
AfxGe ...