c#在线程中操作UI控件

如果UI控件是在主线程中操作,那么我们直接赋值就可以了。
但如果UI控件是在主线程中创建,在其它线程中赋值,如果直接赋值,将会出现错误。所以在赋值UI控件时,我们需要判断InvokeRequired属性,如果为true,我们需要调用Invoke或BeginInvoke方法进行赋值操作。

代码如下:

Task t=new Task(()=>
            {
                if(textBox1.InvokeRequired)
                {
                    textBox1.Invoke(new Action(() =>
                                                        {
                                                            textBox1.Text = "BeginInvoke赋值操作";
                                                        }));
                }else
                {
                    textBox1.Text = "直接赋值test";
                }
            });
t.Start();

c# 执行Dos命令并返回结果

最近一个项目需要执行dos命令,并返回执行的结构。在vs2010中实现非常简单。主要使用ProcessStartInfo与Process。
ProcessStartInfo(string,string):进程信息类。指定启动进程时使用的一组值,并指定启动该进程时使用的应用程序文件名以及要传递给该应用程序的一组命令行参数。
Process:进程类

static void ExecuteCommand(string command)
{
    try
    {
        System.Diagnostics.ProcessStartInfo procStartInfo =
            new System.Diagnostics.ProcessStartInfo("cmd", "/c " + command);
        //将应用程序的输出写入 Process.StandardOutput 流中。
        procStartInfo.RedirectStandardOutput = true;
        //不使用操作系统 shell 启动进程
        procStartInfo.UseShellExecute = false;
        //不开启窗体
        procStartInfo.CreateNoWindow = true;
        System.Diagnostics.Process proc = new System.Diagnostics.Process();
        proc.StartInfo = procStartInfo;
        proc.Start();
        string result = proc.StandardOutput.ReadToEnd();
        Console.WriteLine(result);
    }
    catch (Exception objException)
    {
        // 异常处理
    }
}

Continue reading

jQuery实现数据加载等待

以前实现数据加载等待是自己写的jQuery代码,文章为:简单的页面加载等候样式 。昨天在解决一个问题时,找到了一个isLoading插件,插件的用处就是现实加载等待动画。使用很简单,但是需要引用几个文件。

插件下载地址:http://hekigan.github.io/is-loading/
Continue reading

jQuery点击改变链接的颜色

以前使用的方便比较麻烦,这次测试找到了一个简单的方法。

思路是:首先对a绑定点击事件,在事件中,首先取消掉样式,然后使用$(this)来判断用户点击的哪个元素,再对当前元素应用样式。

代码实现:
1.引用文件

<script type="text/javascript" src="http://shandongit.com/js/jquery.js"></script>

Continue reading

android与网站数据交互(二)android端

上一篇实现了REST WCF,REST WCF 是一种服务,我们只要搭建起来,就可以通过此服务与android交互。
这里只是演示android调用REST WCF中的Login方法,并获取返回的数据。

代码实现

1.首先在activity_main.xml中设计app样式。这里只是加了个TextView和Button。
2.实现一个Download类并实现AsyncTask类中方法。代码如下:
Continue reading

android与网站数据交互(一)搭建REST WCF

前端时间做了个Asp.net网站,网站做完了,然后又测试性的做了一个Android app,这个app很简单,只需要将信息提交到网站就可以了。而数据的交互就是使用的REST WCF,在这里记录一下。
vs2010为我们搭建简单的REST WCF方法很简单。

REST WCF 搭建流程

1.首先打开vs2010,选择文件->新建项目->Visual C#->WCF->WCF 服务应用程序,选择合适位置并输入名称,点击确定
2.在新建的项目中,存在两个默认德尔文件一个接口,一个svc服务实现文件。可以删除这两个文件,再新建一个WCF 服务文件(右键项目->添加->新建项目->WCF 服务),或修改当前文件。本文测试为修改当前文件。
3.首先将接口代码改为:

[ServiceContract]
public interface IServiceTest
{
[OperationContract]
[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json,
    BodyStyle = WebMessageBodyStyle.WrappedRequest, RequestFormat = WebMessageFormat.Json, UriTemplate = "j")]
string Login(User user);
}

Continue reading