C# 如何给从数据库获取时间给datetime赋值

我的目的是要获取某一时刻到现在的时间间隔,下面这段代码可以实现这个功能,但是放到线程里,可能因为DateTimePicker为窗体控件,线程不能执行出结果,我想datet... 我的目的是要获取某一时刻到现在的时间间隔,下面这段代码可以实现这个功能,但是放到线程里,可能因为 DateTimePicker 为窗体控件,线程不能执行出结果,我想datetime应该可以在线程里面用,但不知道怎么给datetim 赋值 ,或者有什么更好的办法,

//获取时间间隔
DateTimePicker dtp = new DateTimePicker();
dtp.Text = Convert.ToString(dt.Rows[i]["fReceiveTime"]);
TimeSpan ts = new TimeSpan();
ts = DateTime.Now - dtp.Value; //获取时间间隔
int TSTS = Convert.ToInt32(ts.TotalSeconds); //转换时间间隔为 秒
展开
 我来答
百度网友d242235
2011-07-04 · TA获得超过2385个赞
知道大有可为答主
回答量:1403
采纳率:84%
帮助的人:819万
展开全部
窗体控件都运行在UI线程中,只能由UI线程本身执行,如果在多线程中设置控件的内容,就会被视为不安全的代码,报出异常。具体解决方法就是在窗体构造函数中禁止跨线程安全检测访问。
public Form1
{
InitialComponents();
CheckForIllegalCrossThreadCalls = false;
}
追问
还是不行,上面我的代码放在backgroundWorker 执行到上面的代码,线程就不再往下了,无论用没用CheckForIllegalCrossThreadCalls = false;
都没有报错。在线程里要计算时间间隔,应该怎么做呢?就是能代替我那段代码的代码?我用DateTimePicker 是因为它有个text属性方便给它赋值,并方便计算时间间隔。但是它属于窗体控件,线程里不管用了,
追答
DateTime dbTime = Convert.ToDateTime(dt.Rows[i]["fReceiveTime"]);
TimeSpan ts = DateTime.Now - dbTime; //获取时间间隔
int TSTS = Convert.ToInt32(ts.TotalSeconds); //转换时间间隔为 秒
JINYUTTT
2011-07-04 · TA获得超过178个赞
知道小有建树答主
回答量:792
采纳率:0%
帮助的人:552万
展开全部
为什么要用DateTimePicker,直接用值不可以吗?跨线程用委托
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式