x box 如何看百事通nba直播

ProcessBox在ui线程打开也要在ui线程关闭
public void ThreadControl()
this.BeginInvoke(new EventHandler(delegate
ProcessBox.getProcessBox().Close();
引用 1 楼 xdashewan 的回复:
ProcessBox在ui线程打开也要在ui线程关闭
public void ThreadControl()
this.BeginInvoke(new EventHandler(delegate
ProcessBox.getProcessBox().Close();
this.BeginInvoke(new EventHandler(delegate
ProcessBox.getProcessBox().Close();
是又开启一个线程??那现在不是有3个线程了?
BeginInvoke和Invoke都并非真正意义上的异步执行,你可以打个日志看一下
引用 3 楼 xdashewan 的回复:
BeginInvoke和Invoke都并非真正意义上的异步执行,你可以打个日志看一下
什么意思?BeginInvoke不是开启一个线程的意思吗?
所以我的....数据查询过程代码....才是应该用Thread th=new Thread(数据查询函数) 这种方式来开启线程是吗?
引用 3 楼 xdashewan 的回复:
BeginInvoke和Invoke都并非真正意义上的异步执行,你可以打个日志看一下
我之前一直是做C++,最近公司有个C#案子让我接收,所以对c#委托还不是很理解
到底是Thread th=new Thread(thread_fun)这种方式开启线程
还是用BeginInvoke这种方式开启线程啊
windows GUI编程有一个规则,只能通过创建控件的线程来操作控件的数据,如果从线程外操作windows窗体控件,Control类实现了ISynchronizeInvoke接口,提供了Invoke和BeginInvoke方法来让其它线程更新GUI界面控件。
引用 6 楼 xdashewan 的回复:
windows GUI编程有一个规则,只能通过创建控件的线程来操作控件的数据,如果从线程外操作windows窗体控件,Control类实现了ISynchronizeInvoke接口,提供了Invoke和BeginInvoke方法来让其它线程更新GUI界面控件。
所以我的....数据查询过程代码....是应该用Thread th=new Thread(数据查询函数) 这种方式来开启线程
还是用委托的BeginInvoke方法来开启线程啊?
我明白你为什么搞不明白了,这里有两个概念一个是control的Invoke和BeginInvoke,另一个是delegate的Invoke和BeginInvoke,这两个是不同的概念,前者是ui线程提供的更新控件的方法,后者是操作线程池。我刚才说的都是前者,所以别和你自己的搞混。
为什么一定要弹出一个模态窗口呢,你加个控件到datagridview控件里多方便啊
引用 8 楼 xdashewan 的回复:
我明白你为什么搞不明白了,这里有两个概念一个是control的Invoke和BeginInvoke,另一个是delegate的Invoke和BeginInvoke,这两个是不同的概念,前者是ui线程提供的更新控件的方法,后者是操作线程池。我刚才说的都是前者,所以别和你自己的搞混。
好吧,那delegate的Invoke和BeginInvoke 和Thread th=new Thread(thread_fun)都是用来开启线程的吧?
引用 9 楼 zj_zwl 的回复:
为什么一定要弹出一个模态窗口呢,你加个控件到datagridview控件里多方便啊
怎么说??什么意思?
我就是想实现等待数据查询的时候,会有那种ProcessBox让人看见,以免让用户因为数据还没有查询出来,而以为界面卡死了
引用 11 楼 maomao85 的回复:
Quote: 引用 9 楼 zj_zwl 的回复:
为什么一定要弹出一个模态窗口呢,你加个控件到datagridview控件里多方便啊
怎么说??什么意思?
我就是想实现等待数据查询的时候,会有那种ProcessBox让人看见,以免让用户因为数据还没有查询出来,而以为界面卡死了
我明白你的需求,你加一个控件到datagridview里用于显示等待信息,需要的时候让它出来,不需要时就隐藏和删除它,很简单的
引用 12 楼 zj_zwl 的回复:
我明白你的需求,你加一个控件到datagridview里用于显示等待信息,需要的时候让它出来,不需要时就隐藏和删除它,很简单的
刚从C++转C#。datagridview这个控件还不是很熟啊,有木有demo
这和datagridview控件没关系,其它控件也可以这么做 .controls.add(xxxx)
动态添加个控件和打开个模态页不是重点,重点是楼主要异步执行代码,你动态添加控件最后删除时候还不一样要靠异步回调通知,然后还得去ui进程里才能删除,这和关闭模态页有区别?
楼主你问题解决了没哦?
自己加控件还得自己去控制用户点击后台界面的操作,模态页打开直接全部遮蔽
引用 14 楼 zj_zwl 的回复:
这和datagridview控件没关系,其它控件也可以这么做 .controls.add(xxxx)
可是我必须在主窗体中弹出框啊,因为我在查询数据的时候,不想让用户进行其他操作.
主窗口弹出框的话会把界面给卡住,用户就不能点其他按钮了
引用 16 楼 xdashewan 的回复:
楼主你问题解决了没哦?
自己加控件还得自己去控制用户点击后台界面的操作,模态页打开直接全部遮蔽
所以我还是得弹出个模态Form是吧?“关闭主窗体中用ShowDialog打开的子窗体”这个问题解决了
我在研究“那delegate的Invoke和BeginInvoke 和Thread th=new Thread(thread_fun)都是用来开启线程的吧”这个问题
不管删除控件也好关闭界面也好,都得在ui线程中,不然一样会出错
楼主你代码加了试过了没
恩,都是开始线程,但这两者区别我也没去研究过
引用 19 楼 xdashewan 的回复:
不管删除控件也好关闭界面也好,都得在ui线程中,不然一样会出错
楼主你代码加了试过了没
我加了代码试过了
private void button1_Click(object sender, EventArgs e)
CrossThreadControl hander = new CrossThreadControl(ThreadControl);
hander.BeginInvoke(new AsyncCallback(writeComplete), null);
ProcessBox.getProcessBox().ShowDialog();
private void writeComplete(IAsyncResult reslut)
CrossThreadControl handler = (CrossThreadControl)((AsyncResult)reslut).AsyncD
handler.EndInvoke(reslut);
public void ThreadControl()
this.Invoke(new CrossThreadControl(delegate
ProcessBox.getProcessBox().SetText("aaaa");
int num = 0;
for (int n = 0; n & 100000; n++)
for (int m = 0; m & 10000; m++)
this.Invoke(new CrossThreadControl(delegate
ProcessBox.getProcessBox().Close();
用你说的方法果断好了,马上给分
其实我先说为什么不用timer?这个不是很简单吗?
其它技术资料
如果您喜欢IT行业或者对IT行业感兴趣,想开拓技术视野,欢迎加入本站官方QQ群:,在群里认识新朋友和交流技术^_^
Powered by && & 2013 &&&/// &summary&
/// 检测是否含有危险字符(防止Sql注入)
/// &/summary&
/// &param name="contents"&预检测的内容&/param&
/// &returns&返回True或false&/returns&
private bool HasDangerousContents(string contents)
bool bReturnValue =
if (contents.Length & 0)
//convert to lower
string sLowerStr = contents.ToLower();
//RegularExpressions
string sRxStr = @"(\sand\s)|(\sand\s)|(\slike\s)|(select\s)|(insert\s)|(delete\s)|(update\s[\s\S].*\sset)|(create\s)|(\stable)|(&[iframe|/iframe|script|/script])|(')|(\sexec)|(\sdeclare)|(\struncate)|(\smaster)|(\sbackup)|(\smid)|(\scount)";
bool bIsMatch =
System.Text.RegularExpressions.Regex sRx = new System.Text.RegularExpressions.Regex(sRxStr);
bIsMatch = sRx.IsMatch(sLowerStr, 0);
if (bIsMatch)
bReturnValue =
return bReturnV
------解决方案--------------------不要拼接sql语句直接执行,多使用SqlParameter,SqlCommand
------解决方案--------------------所有的sql调用全部用存储过程,而且存储过程内部也尽量不要拼接sql语句,这样就能防止injection
------解决方案--------------------在asp.net中强烈建议通过参数来实现sql而不是sql拼接,因为就算你每一个都过滤百密难有疏
SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]);
SqlCommand comm=new SqlCommand("update tb1 set vName=@vName,iAge=@iAge where ID=@id",conn);
SqlParameter parm1=new SqlParameter("@vName",SqlDbType.NVarChar,50);
parm1.Value=((TextBox)e.Item.FindControl("name")).T
SqlParameter parm2=new SqlParameter("@iAge",SqlDbType.Int);
parm2.Value=((TextBox)e.Item.FindControl("age")).T
SqlParameter parm3=new SqlParameter("@id",SqlDbType.Int);
parm3.Value=this.DataGrid1.DataKeys[e.Item.ItemIndex];
comm.Parameters.Add(parm1);
comm.Parameters.Add(parm2);
comm.Parameters.Add(parm3);
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
------解决方案--------------------存储过程,要不你就得做字符串过滤,也可以用转换,webservice等!要看个人的经验了!比如xwny.aspx?id=2这样的常被注入的例子你可以在你的方法中mode(int64 id)这样定义不就没事了!
------解决方案--------------------SqlHelper + 参数化存储过程 + 正则表达式
------解决方案--------------------
这个问题应该转到 SQL 时去, 建议使用SP.
这一点我也很赞同.但T-SQL 有时间比SP要方便一点, 写好过滤 T-SQL 的方法后,还要做到以下几点 (人个认为)1、把所有 TextBox (Input type="text" ) 等输入信息的地方,限制一个最大输入长度。
这样至少可以给输入危险字符带来限制,这还是有点作用的,况且这样做并不难。(JavaScript遍历)2、楼主也提到过,URL可能也会传输入危险字符。这个解决,你可以用URL重写功能,这样比较好,至少可以增加难度
例如:abc.aspx?year=2008&month=5
可重写为 abc/2008/5
(扩展名是可以隐藏的)3、把你写的过滤方法及一些防范措施,最好用到 Global 或 http请求 里. (建议Global)这样应该比较不错。还有,我想随便问一下楼主,你确认无名的黑客就是SQL注入攻击您的网站的?或者说你的服务器,本身就是他的一个肉机或别的什么?
------解决方案--------------------只要先在查询分析器里建好存储过程,我建议最好用视图至于里代码里吗,你多用适配器+SQL参数结合来使用,如有可能再建一个数据封装类来给数据传输加密.其实防注入还是很简单的!
------解决方案--------------------
在解决SQL Injection的可行方案中,基于正则表达式的方案不予考虑,理由有:1、即使使用了pile选项,正则表达式的性能也不很理想,尤其是在楼主“流量巨大”的网站中很可能会造成性能瓶颈。2、过滤的范围很难把握,不是过宽就是过窄。对楼主的这个例子来说,我的文章中有一个" and "都会被判断为危险字符串;另一方面,这个表达式对"exec"开头的字符串却无能为力。当然如果楼主的这个表达式可以只是针对某一个或几个参数进行验证,这样却必须保证对所有其他的输入参数都写对应的表达式来过滤。可以使用的方案主要有:1、使用SqlParameter类2、在数据库上增加一个抽象层次,防止直接对数据库的操作3、在数据库方面,应用程序使用专门的帐户,设置其对应的权限,一定不要用管理员4、避免拼接字符串
------解决方案--------------------楼主,难道防止SQL注入还要100种不同的方法吗?大家的回答足够了。1、用SQL参数(参数在Command Text或者存储过程都可以用),不要用加串方式执行2、合理设置数据库权限,严禁使用sa账号执行商务逻辑,应用程序所使用的数据库帐号权限应当最小化(程序不需要用到的权限一律不给,用不到的表不给访问权,只需要读数据的表不给写权限,等等),这样可以做到及时不幸被SQL注入,亦可以尽量减少损失
------解决方案--------------------1.
只要不把 参数 拼到语句里就行了2.
只要把关键字(如单引号,分号等)屏蔽掉就行了3.
都参数对象就行了
------解决方案--------------------如果实在没有法要用到拼接,就用SP_EXECUTESQL 系统存储过程防止SQL注入例如:SQL code
declare @userid int
set @userid = 1 declare @sqlStr nvarchar(1000),@param nvarchar(400)
set @sqlStr='select * from table where [userid]=@tuserid' //这里可以拼接字符串,我这里简单点哈
set @param='@tuserid int'
execute sp_executesql @sqlstr,@param,@tuserid=@userid
//变量替换
------解决方案--------------------我是使用404错误结合模板来生成静态的页面,而且程序和生成的静态页面是放在两台不同的服务器的,对外网只开发生成页面,内网放置程序,后台单独另外的服务器,数据库一台服务器。这样一旦新闻有更新的话,自动分布式生成页面,用户和数据库没有交往,这个是解决SQL注入的最好方法。同时还可以生成静态,加快访问速度。
------解决方案--------------------用正则提取出仅需要的参数,再用SQL参数来提交,安全性还是非常高的
(独家)cocos2d-x与excel通过xml文件读写双向交互(下)
(独家)cocos2d-x与excel通过xml文件读写双向交互(上)前言的念念碎
Excel是一个伟大的把程序员,与一般电脑用户链接到一起的桥梁。是万国翻译器。
首先我推崇excel有以下几点原因:
第一:程序员可以把晦涩的数据库,转换成大多数电脑用户都能看得懂的数据。
第二:对于游戏工团队是完美的脚本配置工具。
高效的游戏制作团队粗分为:策划,美术,程序,三个职位。
其中策划本来是负责游戏的 :创意,体验,和游戏的一些数据配置。
然而游戏策划人员为了和程序人员进行协同工作,逼不得已要学习很多晦涩的脚本配置语言,软件等。
这样有三害:
一,是分散了策划人员主要精力,
二,没有统一的规范,三天两头要学习一个新的软件,造成很大的统一管理难度。
三,增加了游戏工作室招收策划人员的难度。
这就是为什么我要发布这套c++的excel读写文章,他对于游戏界的贡献必定是空前的。
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////华丽的分割线//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
本章节分两个部分:1,excel的读取。2,excel的写入。
Excel的读取
static vector&string& split(string str,string pattern);//字符串分割
static bool isContantString(string sourceStr,string patternStr);//判断一个字符串是否包含另外一个
vector&vector&string& & paserExcel(string detailStr);
//c++字符串分割函数
vector&string&PersonalApiCplu::split(string
str,string pattern)
std::string::size_type
std::vector&std::string&
str+=//扩展字符串以方便操作
int size=str.size();
for(int i=<span style="color:#; i& i++)
pos=str.find(pattern,i);
if(pos&size)
std::string s=str.substr(i,pos-i);
result.push_back(s);
i=pos+pattern.size()-<span style="color:#;
PersonalApiCplu::isContantString(string sourceStr,string patternStr)
const char *
show=strstr(sourceStr.c_str(),patternStr.c_str());//返回指向第一次出现r位置的指针,如果没找到则返回NULL。
if (show == NULL)
isContant =
isContant =
return isC
vector&vector&string& &
ExcelParser::paserExcel(string detailStr)
vector&vector&string& &
//去头莫名奇妙都会多出第一行为空,内容都从数组的第二位开始
//去尾莫名其妙多最后一位。
string pattern1("&Row ss:AutoFitHeight=\"0\"&");//去头
vector&string&ivec1 =
PersonalApiCplu::split(detailStr,pattern1);//取出所有单词套组
for (int j =
<span style="color:#;j&ivec1.size(); j++)
if (j == <span style="color:#)
vector&string& tempI
string pattern2("&/Data&&/Cell&");//去尾
vector&string&ivec2 =
PersonalApiCplu::split(ivec1[j],pattern2);//某个单词组中的所有元素
for (int i =
<span style="color:#;i&ivec2.size()-<span style="color:#; i++)//去尾
string sourceStr = ivec2[i];
string patternStr =
"&/Font&";
if (PersonalApiCplu::isContantString(sourceStr,patternStr))//判断是否可以直接取,或者是要通过字符串合并
string pattern3("&/Font&");//去尾
vector&string&ivec3 =
PersonalApiCplu::split(ivec2[i],pattern3);
string s4;
string pattern4("xmlns=\"http://www.w3.org/TR/REC-html40\"&");//去头
for (int k =
<span style="color:#; k&ivec3.size()-<span style="color:#; k++)//记得减去数组最后一位,去尾莫名其妙多最后一位。
vector&string&ivec4 =
PersonalApiCplu::split(ivec3[k],pattern4);
s4 += ivec4[<span style="color:#];
tempIvec.push_back(s4.c_str());
string pattern3("&Data ss:Type=\"String\"&");
vector&string&ivec3 =
PersonalApiCplu::split(ivec2[i],pattern3);
string s3 =
ivec3[<span style="color:#];
tempIvec.push_back(s3.c_str());
ivec.push_back(tempIvec);
(猜有关问题送分)刚进公司不久,经理给了个小的项目让小弟我看,也不和小弟我说话,他想干啥
(猜问题送分)刚进公司不久,经理给了个小的项目让我看,也不和我说话,他想干啥。最近刚进一家小一点的公司,经理给了我一个小项目,让我看代码。顺便改改错。但是他也不来问我做到哪里了。好几个星期了。连问也不问。挺郁闷的。大家猜猜他想干啥。------解决方案--------------------等你看完了就他就会给你分配工作了,我估计是现在你们公司不太忙,让你先学习一下,刚进公司都这样,如果看得差不多了,就主动跟经理说说,新人总得积极写嘛。。
------解决方案--------------------意图很简单
叫你先熟悉一下 等过段时间再考验你
------解决方案--------------------测试你的自觉性。
------解决方案--------------------都一样,当初一个多月就第一天告诉我看Ext,然后就没人管我。
------解决方案--------------------都是,一般 都是 先 晾你断时间,因为你刚去 业务也不熟悉,就是叫你看下人家的框架结构,熟悉下代码,之后就开始要上手了!
------解决方案--------------------好好看吧。不知道就去问。总会告诉你的。或许他还想考验你会不会主动去找他了解。
------解决方案--------------------我觉得你还是要多问,这样最起码他感觉你是存在的!也很有积极性!
------解决方案--------------------先好好看看资料熟悉熟悉,不知道的就问,只要态度积极就好啊,老板们都带着眼睛的呢,慢慢就好了。祝福新岗位一切顺意!
------解决方案--------------------靠,你以为你是上司人家过来问你怎么了啊。。。
------解决方案--------------------挺好的~~有时间爱干啥干啥~~------解决方案--------------------明显让你熟悉下项目
------解决方案--------------------嗯、嗯 考验你呢
------解决方案--------------------难道要像小学天天老师来盯着你么?
------解决方案--------------------主动沟通一下
------解决方案--------------------你应该表现的积极一点。。主动询问他。。。然后告知你已经看得差不多了。。。如果看得时间太长,,对你没多少好处。。。说明你接收的太慢。。。
------解决方案--------------------估计是想让你熟悉熟悉,遇到不明白的地方就去问他,让他美下
如果您想提高自己的技术水平,欢迎加入本站官方1号QQ群:&&,&&2号QQ群:,在群里结识技术精英和交流技术^_^
本站联系邮箱:497电玩,电视游戏玩家基地!
您的位置:
大作来袭的节奏!传Xbox One国行数字版游戏不锁区
大作来袭的节奏!传Xbox One国行数字版游戏不锁区
& &在4月30日百事通和微软正式宣布次世代主机Xbox One将在今年9月份正式在中国大陆发售,然而在发布会中官方并没有透露国行的价格、游戏和锁区等重要情报,这也让引得不少玩家和媒体的各种猜测,就比如新浪科技就传Xbox One售价4999元。
& &然而关于是否锁区和区域限制,根据业内人士@XBOX-SKYER的描述,国行Xbox One目前政策暂时不锁游戏区域,Xbox One区域设置到中国区就是中国商店,切换到美国区就能购买美国游戏,类似Windows 8和Windows Phone 8,他还奉劝用户准备好对应区域的支付方式。另外,国行光盘游戏限制只能在国行主机运行。
& &不过相信在近段时间百事通方面不会进行正面回应,相信中国在首届游戏展&次世代游戏机及家庭数字娱乐产品展览会(ACH)&中会有更多的情报公开,497电玩也将进行追踪报道,为各位玩家带来最新的情报,敬请期待!
游戏下载排行
最新游戏更新
||商务合作||友情链接
CopyRight2014年-2014年
497电玩 All Rights Reserved
备案编号:沪ICP备号-3

我要回帖

更多关于 百事通回看 的文章

 

随机推荐