Tuesday, January 30, 2007

c#.net中关于嵌入文档后"另存为"的问题

发信人: pseudocode (I can Run!), 信区: DotNET
标 题: Re: c#.net中关于嵌入文档后"另存为"的问题
发信站: 水木社区 (Tue Jan 30 14:49:53 2007), 站内

要显示菜单栏可以用下面的方式


object o = this.webBrowser1.ActiveXInstance;
if (o == null)
{
return;
}

IWebBrowser2 browser = o as IWebBrowser2;
if (browser != null)
{
object nullObject = null;
browser.ExecWB(SHDocVw.OLECMDID.OLECMDID_HIDETOOLBARS, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER, ref nullObject, ref nullObject);
}

如果只是想要saveas的话,也可以在navigatecomplete后
IWebBrowser2 browser = this.webBrowser1.ActiveXInstance as IWebBrowser2;
Excel.WorkBook book = browser.Document as Excel.Workbook;
book.saveas(...)



【 在 sandwyg (ger) 的大作中提到: 】
: c#.net用WebBrowser控件可以实现文档的嵌入,但是无法显示office文档菜单栏,那我想"另存为"怎么实现

请问这是什么意思: class A where T: new(){

发信人: pseudocode (I can Run!), 信区: DotNET
标 题: Re: 请问这是什么意思: class A where T: new(){
发信站: 水木社区 (Tue Jan 30 10:33:12 2007), 站内

generics c#

一个类模板,要求T这个类必须有一个无参数的public的构造函数或者默认构造函数
http://msdn2.microsoft.com/en-us/library/d5x73970.aspx


【 在 lfmobile (绝地苍狼) 的大作中提到: 】
: 我看到别人的代码中有这么一个类定义的写法:
: class A where T: new(){
: ......}
: ...................

c#判断一个数组中是否包含某元素的方法

发信人: pseudocode (I can Run!), 信区: DotNET
标 题: Re: c#判断一个数组中是否包含某元素的方法
发信站: 水木社区 (Sat Jan 27 17:37:39 2007), 站内

Contains

【 在 skynewborn (在水一方) 的大作中提到: 】
: 有没有什么现成的方法可以直接用,除了自己遍历比较之外?

VS2005中怎么改变启动时的环境呢?

发信人: pseudocode (I can Run!), 信区: DotNET
标 题: Re: VS2005中怎么改变启动时的环境呢?
发信站: 水木社区 (Sat Jan 27 17:36:31 2007), 站内

Tools -> Import and Export Settings -> Reset all settings -> Yes, save my current settings -> Visual C# development settings -> Finish


【 在 sancho (ajkkfhkjhafkanfknafkjanfkjhfkjabhfjkabf) 的大作中提到: 】
: 比如原来选的是c++,现在要改成c#...
: 虽然新建的时候可以改,但启动就自动改回来还是方便些///

Friday, January 26, 2007

各位帮忙看看:多线程,DLL返回消息

发信人: anzir (aa), 信区: MSDN
标 题: 各位帮忙看看:多线程,DLL返回消息
发信站: 水木社区 (Thu Jan 25 15:14:03 2007), 站内

【 以下文字转载自 VisualC 讨论区 】
发信人: anzir (aa), 信区: VisualC
标 题: 各位帮忙看看:多线程,DLL返回消息
发信站: 水木社区 (Thu Jan 25 15:13:32 2007), 站内

程序在CTestView中调用dll连接库中的函数进行长时间的处理,
打算每个一定时间从联结库的函数返回一个消息
但是不知道该怎么发消息
现在是采用多线程的方法
程序的大概流程如下
可是多线程函数直到动态连接库函数计算完成后才调用
不知道是因为多线程使用方法不对,还是因为这种方法根本不行


定义标志量
HANDLE hRunMutex;

多线程函数
void ProcessStatus(void *thrpara);

入口函数
void CTestView::TestFunc(char *spath, char *sext)
{
/////
long nproc = 0;
启动多线程
hRunMutex = CreateMutex( NULL, TRUE, NULL ); // Set
_beginthread(ProcessStatus, 0, &nproc);

开始调用DLL连接库函数,执行处理
CMyClass cls;
cls.DoLongTimeWork();

结束多线程
ReleaseMutex( hRunMutex );
CloseHandle( hRunMutex );
}

DLL中胡函数
void CMyClass::DoLongTimeWork()
{
long i;
for(i = 0; i < 10000; i ++)
{
//extensive computing.....
}
}

多线程回调函数
void ProcessStatus(void *thrpara)
{
while ( WaitForSingleObject( hRunMutex, 75L ) == WAIT_TIMEOUT );
{
SYSTEMTIME stime;
GetSystemTime(&stime);
TRACE("hello %d, %ld\n", stime.wMilliseconds, *(long *)thrpara);
}
}

--

※ 来源:·水木社区 http://newsmth.net·[FROM: 210.75.99.*]

[本篇全文] [本篇作者:whero] [进入讨论区] [返回顶部]2发信人: whero (月光族), 信区: MSDN
标 题: Re: 各位帮忙看看:多线程,DLL返回消息 (转载)
发信站: 水木社区 (Thu Jan 25 15:25:11 2007), 站内

ProcessStatus 上来会WaitForSingleObject,而那个mutex从你code看要longTimeWork
后才会释放,当然那个thread要计算完成后才干活。

【 在 anzir (aa) 的大作中提到: 】
: 标 题: 各位帮忙看看:多线程,DLL返回消息
: 发信站: 水木社区 (Thu Jan 25 15:14:03 2007), 站内
:
: 【 以下文字转载自 VisualC 讨论区 】
: 发信人: anzir (aa), 信区: VisualC
: 标 题: 各位帮忙看看:多线程,DLL返回消息
: 发信站: 水木社区 (Thu Jan 25 15:13:32 2007), 站内
:
: 程序在CTestView中调用dll连接库中的函数进行长时间的处理,
: 打算每个一定时间从联结库的函数返回一个消息
: 但是不知道该怎么发消息
: 现在是采用多线程的方法
: 程序的大概流程如下
: 可是多线程函数直到动态连接库函数计算完成后才调用
: 不知道是因为多线程使用方法不对,还是因为这种方法根本不行
:
:
: 定义标志量
: HANDLE hRunMutex;
:
: 多线程函数
: void ProcessStatus(void *thrpara);
:
: 入口函数
: void CTestView::TestFunc(char *spath, char *sext)
: {
: /////
: long nproc = 0;
: 启动多线程
: hRunMutex = CreateMutex( NULL, TRUE, NULL ); // Set
: _beginthread(ProcessStatus, 0, &nproc);
:
: 开始调用DLL连接库函数,执行处理
: CMyClass cls;
: cls.DoLongTimeWork();
:
: 结束多线程
: ReleaseMutex( hRunMutex );
: CloseHandle( hRunMutex );
: }
:
: DLL中胡函数
: void CMyClass::DoLongTimeWork()
: {
: long i;
: for(i = 0; i < 10000; i ++)
: {
: //extensive computing.....
: }
: }
:
: 多线程回调函数
: void ProcessStatus(void *thrpara)
: {
: while ( WaitForSingleObject( hRunMutex, 75L ) == WAIT_TIMEOUT );
: {
: SYSTEMTIME stime;
: GetSystemTime(&stime);
: TRACE("hello %d, %ld\n", stime.wMilliseconds, *(long *)thrpara);
: }
: }
:
: --
:
: ※ 来源:·水木社区 http://newsmth.net·[FROM: 210.75.99.*]


--

※ 来源:·水木社区 newsmth.net·[FROM: 211.99.222.*]

[本篇全文] [本篇作者:hleon] [进入讨论区] [返回顶部]3发信人: hleon (阿土仔(垚垚)), 信区: MSDN
标 题: Re: 各位帮忙看看:多线程,DLL返回消息 (转载)
发信站: 水木社区 (Thu Jan 25 16:04:37 2007), 站内

可是他的waitforsingleobject不是INFINITE呀

【 在 whero (月光族) 的大作中提到: 】
: ProcessStatus 上来会WaitForSingleObject,而那个mutex从你code看要longTimeWork
: 后才会释放,当然那个thread要计算完成后才干活。


--
天下风云出我辈,
一入江湖岁月催。
皇图霸业谈笑中,
不胜人生一场醉。


※ 来源:·水木社区 newsmth.net·[FROM: 58.185.111.*]

[本篇全文] [本篇作者:pseudocode] [进入讨论区] [返回顶部]4发信人: pseudocode (I can Run!), 信区: MSDN
标 题: Re: 各位帮忙看看:多线程,DLL返回消息 (转载)
发信站: 水木社区 (Thu Jan 25 18:19:39 2007), 站内

注意看他的while,多了个分号


多线程回调函数
void ProcessStatus(void *thrpara)
{
while ( WaitForSingleObject( hRunMutex, 75L ) == WAIT_TIMEOUT );
~~~~
{
SYSTEMTIME stime;
GetSystemTime(&stime);
TRACE("hello %d, %ld\n", stime.wMilliseconds, *(long *)thrpara);
}
}

--

【 在 hleon (阿土仔(垚垚)) 的大作中提到: 】
: 可是他的waitforsingleobject不是INFINITE呀

Tuesday, January 23, 2007

C#跨线程调用UI控件的问题

发信人: shazhude (民科·话粗理不操), 信区: DotNET
标 题: C#跨线程调用UI控件的问题
发信站: 水木社区 (Mon Jan 22 11:29:43 2007), 站内

使用了别人的一个组件

监听了其中的event,这个event的执行是在UI线程外的

我在event回调函数中要修改一个UI控件

msdn提供的backgroundworker的方法不适合这儿的情况,

这个控件不是Control的subclass,故也无法使用InvokeRequired的方法

有其他可行的办法吗,目前我是直接把这个跨线程修改ui的异常禁止了

--

※ 修改:·shazhude 于 Jan 22 11:30:12 修改本文·[FROM: 211.99.222.*]
※ 来源:·水木社区 newsmth.net·[FROM: 211.99.222.*]

[本篇全文] [本篇作者:worldgamer] [进入讨论区] [返回顶部]2发信人: worldgamer (暗夜微风), 信区: DotNET
标 题: Re: C#跨线程调用UI控件的问题
发信站: 水木社区 (Mon Jan 22 14:19:50 2007), 站内

不是Control的subclass怎么能称之为控件(标准控件)?

【 在 shazhude (民科·话粗理不操) 的大作中提到: 】
: 使用了别人的一个组件
: 监听了其中的event,这个event的执行是在UI线程外的
: 我在event回调函数中要修改一个UI控件
: ...................



--

※ 来源:·水木社区 http://newsmth.net·[FROM: 59.108.30.*]

[本篇全文] [本篇作者:pseudocode] [进入讨论区] [返回顶部]3发信人: pseudocode (I can Run!), 信区: DotNET
标 题: Re: C#跨线程调用UI控件的问题
发信站: 水木社区 (Mon Jan 22 16:47:53 2007), 站内

你那个control 有自己的消息处理吗?

在消息处理函数里面加一个自己定义的消息,
event发生后就发一个消息,control收到后处理就ok了


【 在 shazhude (民科·话粗理不操) 的大作中提到: 】
: 使用了别人的一个组件
: 监听了其中的event,这个event的执行是在UI线程外的
: 我在event回调函数中要修改一个UI控件
: ...................

--

※ 来源:·水木社区 newsmth.net·[FROM: 219.142.46.*]

[本篇全文] [本篇作者:shazhude] [进入讨论区] [返回顶部]4发信人: shazhude (灌人民群众喜闻乐见的好文章), 信区: DotNET
标 题: Re: C#跨线程调用UI控件的问题
发信站: 水木社区 (Mon Jan 22 18:33:29 2007), 站内

已经解决了,多谢两位
【 在 pseudocode (I can Run!) 的大作中提到: 】
: 你那个control 有自己的消息处理吗?
: 在消息处理函数里面加一个自己定义的消息,
: event发生后就发一个消息,control收到后处理就ok了
: ...................

--

问一下C#里文本框如何控制输入的数据类型

发信人: zxqnyl (zxqnyl), 信区: DotNET
标 题: 问一下C#里文本框如何控制输入的数据类型
发信站: 水木社区 (Thu Jan 18 10:33:07 2007), 站内

如题!



--
君子务本,本立而生......


※ 来源:·水木社区 newsmth.net·[FROM: 220.205.49.*]

[本篇全文] [本篇作者:Biglans] [进入讨论区] [返回顶部]2发信人: Biglans (大头), 信区: DotNET
标 题: Re: 问一下C#里文本框如何控制输入的数据类型
发信站: 水木社区 (Thu Jan 18 16:59:13 2007), 站内

只能输入文本
【 在 zxqnyl (zxqnyl) 的大作中提到: 】
: 如题!


--
从实践中来

到实践中去


※ 来源:·水木社区 newsmth.net·[FROM: 125.33.155.70]

[本篇全文] [本篇作者:pseudocode] [进入讨论区] [返回顶部]3发信人: pseudocode (I can Run!), 信区: DotNET
标 题: Re: 问一下C#里文本框如何控制输入的数据类型
发信站: 水木社区 (Thu Jan 18 17:47:55 2007), 站内

OnKeyDown 或者 OnkeyPress 事件
检查是不是你要的,如果不是,就e.Handled = true 就ok了


【 在 zxqnyl (zxqnyl) 的大作中提到: 】
: 如题!

紧急求助,关于将c++程序包装为.net服务的问题

发信人: lwholly (allan), 信区: DotNET
标 题: 紧急求助,关于将c++程序包装为.net服务的问题
发信站: 水木社区 (Tue Jan 16 12:47:04 2007), 站内


紧急求助,目前我遇到的情况如下:
利用一个商业软件提供的com组件,用c++开发了一段代码,其中引用了该商业软件提供的.tlb文件,来使用com组件,在vc中开发后,运行正常。但是,用c++托管技术转换为.net服务时,使用了下列语句:
using "xxx.tlb"
using "xxx.tlb"
编译的时候,提示引用错误,并发现错误提示信息中,将文件名改为了xxx.tlb.dl不知道问题出在哪里?十分焦急,能否请大侠们出手相助,谢谢了!


--

※ 来源:·水木社区 newsmth.net·[FROM: 219.239.98.*]

[本篇全文] [本篇作者:pseudocode] [进入讨论区] [返回顶部]2发信人: pseudocode (I can Run!), 信区: DotNET
标 题: Re: 紧急求助,关于将c++程序包装为.net服务的问题
发信站: 水木社区 (Tue Jan 16 12:52:22 2007), 站内

是在managed c++里面吗?

应该是import “xxx。tlb”吧

【 在 lwholly (allan) 的大作中提到: 】
: 紧急求助,目前我遇到的情况如下:
: 利用一个商业软件提供的com组件,用c++开发了一段代码,其中引用了该商业软件提供的.tlb文件,来使用com组件,在vc中开发后,运行正常。但是,用c++托管技术转换为.net服务时,使用了下列语句:
: using "xxx.tlb"
: ...................

Saturday, January 06, 2007

c#线程交互问题

发信人: UNJOE (愿你得平安), 信区: DotNET
标 题: c#线程交互问题
发信站: 水木社区 (Thu Jan 4 14:16:00 2007), 站内

在线程A中使用Invoke将某个方法在B线程中运行
A线程这个时候是不是会在等待Invoke操作结束

如果是怎么样才能不再等待该方法结束


多谢
--
:怎么长得这么丑啊

因为是小时候的照片

:你现在也好不到哪里去啊


※ 来源:·水木社区 newsmth.net·[FROM: 124.64.71.*]

[本篇全文] [本篇作者:jerryju] [进入讨论区] [返回顶部]2发信人: jerryju (闲里偷忙), 信区: DotNET
标 题: Re: c#线程交互问题
发信站: 水木社区 (Thu Jan 4 14:17:11 2007), 站内

好像不等吧

【 在 UNJOE (愿你得平安) 的大作中提到: 】
: 在线程A中使用Invoke将某个方法在B线程中运行
: A线程这个时候是不是会在等待Invoke操作结束
: 如果是怎么样才能不再等待该方法结束
: ...................

--

※ 来源:·水木社区 newsmth.net·[FROM: 207.46.89.*]

[本篇全文] [本篇作者:pseudocode] [进入讨论区] [返回顶部]3发信人: pseudocode (I can Run!), 信区: DotNET
标 题: Re: c#线程交互问题
发信站: 水木社区 (Thu Jan 4 14:19:14 2007), 站内

BeginInvoke
【 在 UNJOE (愿你得平安) 的大作中提到: 】
: 在线程A中使用Invoke将某个方法在B线程中运行
: A线程这个时候是不是会在等待Invoke操作结束
: 如果是怎么样才能不再等待该方法结束
: ...................

--

※ 来源:·水木社区 newsmth.net·[FROM: 219.142.46.*]

[本篇全文] [本篇作者:hBifTs] [进入讨论区] [返回顶部]4发信人: hBifTs (OS真过瘾...), 信区: DotNET
标 题: Re: c#线程交互问题
发信站: 水木社区 (Thu Jan 4 14:23:27 2007), 站内


...

线程起来后,Invoke函数就自然返回了啊~

【 在 UNJOE (愿你得平安) 的大作中提到: 】
: 在线程A中使用Invoke将某个方法在B线程中运行
: A线程这个时候是不是会在等待Invoke操作结束
: 如果是怎么样才能不再等待该方法结束
: ...................

--

just for fun~~~~

山自高兮水自深!當塵霧消散,唯事實留傳

Welcome to My Blog We Miss you~ : http://www.robinzhong.com


※ 来源:·水木社区 newsmth.net·[FROM: 218.104.127.*]

[本篇全文] [本篇作者:UNJOE] [进入讨论区] [返回顶部]5发信人: UNJOE (愿你得平安), 信区: DotNET
标 题: Re: c#线程交互问题
发信站: 水木社区 (Thu Jan 4 14:26:32 2007), 站内

谢谢,就是异步调用

【 在 pseudocode (I can Run!) 的大作中提到: 】
: BeginInvoke


--
:怎么长得这么丑啊

因为是小时候的照片

:你现在也好不到哪里去啊


※ 来源:·水木社区 newsmth.net·[FROM: 124.64.71.*]

C#写的多线程程序出现下面的错误是怎么回事?

发信人: ahxnwubh1983 (小碧), 信区: DotNET
标 题: C#写的多线程程序出现下面的错误是怎么回事?
发信站: 水木社区 (Fri Jan 5 22:14:02 2007), 站内

ContextSwitchDeadlock was detected
Message: The CLR has been unable to transition from COM context 0x1a0968 to COM context 0x1a0ad8 for 60 seconds. The thread that owns the destination context/apartment is most likely either doing a non pumping wait or processing a very long running operation without pumping Windows messages. This situation generally has a negative performance impact and may even lead to the application becoming non responsive or memory usage accumulating continually over time. To avoid this problem, all single threaded apartment (STA) threads should use pumping wait primitives (such as CoWaitForMultipleHandles) and routinely pump messages during long running operations.

请大侠帮忙,谢谢了!

--

※ 来源:·水木社区 newsmth.net·[FROM: 211.99.222.*]

[本篇全文] [本篇作者:pseudocode] [进入讨论区] [返回顶部]2发信人: pseudocode (I can Run!), 信区: DotNET
标 题: Re: C#写的多线程程序出现下面的错误是怎么回事?
发信站: 水木社区 (Fri Jan 5 23:15:40 2007), 站内

你的程序有调用Com的东西或者unmanaged的吗?

【 在 ahxnwubh1983 (小碧) 的大作中提到: 】
: ContextSwitchDeadlock was detected
: Message: The CLR has been unable to transition from COM context 0x1a0968 to COM context 0x1a0ad8 for 60 seconds. The thread that owns the destination context/apartment is most likely either doing a non pumping wait or processing a very long running o
: 请大侠帮忙,谢谢了!
: ...................

--

※ 来源:·水木社区 newsmth.net·[FROM: 222.129.40.*]

[本篇全文] [本篇作者:ahxnwubh1983] [进入讨论区] [返回顶部]3发信人: ahxnwubh1983 (小碧), 信区: DotNET
标 题: Re: C#写的多线程程序出现下面的错误是怎么回事?
发信站: 水木社区 (Sat Jan 6 03:44:09 2007), 站内

呵呵,我初学c#,都是用c#语言提供的基本功能,只是创建了多个线程
好像看意思的线程互斥死锁了
【 在 pseudocode (I can Run!) 的大作中提到: 】
: 你的程序有调用Com的东西或者unmanaged的吗?


--

※ 来源:·水木社区 newsmth.net·[FROM: 211.99.222.*]

[本篇全文] [本篇作者:pseudocode] [进入讨论区] [返回顶部]4发信人: pseudocode (I can Run!), 信区: DotNET
标 题: Re: C#写的多线程程序出现下面的错误是怎么回事?
发信站: 水木社区 (Sat Jan 6 08:51:27 2007), 站内

你的某个线程是不是有无限循环或者需要操作时间很长的啊?

【 在 ahxnwubh1983 (小碧) 的大作中提到: 】
: 呵呵,我初学c#,都是用c#语言提供的基本功能,只是创建了多个线程
: 好像看意思的线程互斥死锁了


--

※ 来源:·水木社区 newsmth.net·[FROM: 222.129.33.*]

[本篇全文] [本篇作者:pseudocode] [进入讨论区] [返回顶部]5发信人: pseudocode (I can Run!), 信区: DotNET
标 题: Re: C#写的多线程程序出现下面的错误是怎么回事?
发信站: 水木社区 (Sat Jan 6 09:02:29 2007), 站内

Why you sometimes get a bogus ContextSwitchDeadLock MDA under the debugger
The ContextSwitchDeadLock MDA (I blogged about MDAs here) sometimes fires under the debugger. MSDN says:

It is possible for this MDA to be falsely activated when all of the following conditions are met:
* An application creates COM components from STA threads either directly or indirectly through libraries.
* The application was stopped in the debugger and the user either continued the application or performed a step operation.
*Unmanaged debugging is not enabled.

The reasoning is that:
1) When you're stopped in the debugger while managed-only debugging, unmanaged threads are still running. This means that any unmanaged threads that are waiting on some timeout from managed code will continue to run. The unmanaged thread will see the timeout fire, but it won't realize that the managed thread is actually stopped by the debugger. Thus the managed thread looks it's deadlocked. This is not an issue when unmanaged debugging because then the timeout thread is also frozen when stopped in the debugger, and so the timeout won't fire.

2) The finalizer for an STA COM objects needs to run code on the STA thread. So there's some cross-thread stuff between the finalizer thread and the STA thread.

So the STA thread may be blocked by the debugger (since the whole managed process is frozen at a breakpoint), while the timeout check (on an unmanaged thread) is still ticking.

This is a race because it needs the finalization and debugger event to happen at just the right windows.
We assessed that this scenario as a rare situation. I’d expect you to see this only on very rare occasions (due to prerequisite timing issues).
If you are hitting this bogusly, one workaround is to disable this specific MDA.

http://blogs.msdn.com/jmstall/archive/2005/11/11/ContextSwitchDeadLock.aspx
http://eknowledger.spaces.live.com/blog/cns!F475D4DE444DB1AB!1244.entry
【 在 ahxnwubh1983 (小碧) 的大作中提到: 】
: 呵呵,我初学c#,都是用c#语言提供的基本功能,只是创建了多个线程
: 好像看意思的线程互斥死锁了


--

※ 来源:·水木社区 newsmth.net·[FROM: 222.129.33.*]

[本篇全文] [本篇作者:ahxnwubh1983] [进入讨论区] [返回顶部]6发信人: ahxnwubh1983 (小碧), 信区: DotNET
标 题: Re: C#写的多线程程序出现下面的错误是怎么回事?
发信站: 水木社区 (Sat Jan 6 13:45:33 2007), 站内

线程函数中会循环Sleep50ms,然后去检查一个消息队列是否有消息进行处理
是不是因为Sleep的次数太多?谢谢了
【 在 pseudocode (I can Run!) 的大作中提到: 】
: Why you sometimes get a bogus ContextSwitchDeadLock MDA under the debugger
: The ContextSwitchDeadLock MDA (I blogged about MDAs here) sometimes fires under the debugger. MSDN says:
: It is possible for this MDA to be falsely activated when all of the following conditions are met:
: ...................

--

※ 修改:·ahxnwubh1983 于 Jan 6 13:45:45 修改本文·[FROM: 211.99.222.*]
※ 来源:·水木社区 newsmth.net·[FROM: 211.99.222.*]

[本篇全文] [本篇作者:ahxnwubh1983] [进入讨论区] [返回顶部]7发信人: ahxnwubh1983 (小碧), 信区: DotNET
标 题: Re: C#写的多线程程序出现下面的错误是怎么回事?
发信站: 水木社区 (Sat Jan 6 14:32:09 2007), 站内

发生这个错误的时候,所有线程都是停止在sleep调用上
【 在 ahxnwubh1983 (小碧) 的大作中提到: 】
: 线程函数中会循环Sleep50ms,然后去检查一个消息队列是否有消息进行处理
: 是不是因为Sleep的次数太多?谢谢了


--

※ 来源:·水木社区 newsmth.net·[FROM: 211.99.222.*]

[本篇全文] [本篇作者:Nineteen] [进入讨论区] [返回顶部]8发信人: Nineteen (在哪里倒下,就在哪里躺下!), 信区: DotNET
标 题: Re: C#写的多线程程序出现下面的错误是怎么回事?
发信站: 水木社区 (Sat Jan 6 14:34:07 2007), 站内

当队列中有新的Item加进来,应该让队列对象主动的push一个event,而不应该让线程去拉.

【 在 ahxnwubh1983 (小碧) 的大作中提到: 】
: 线程函数中会循环Sleep50ms,然后去检查一个消息队列是否有消息进行处理
: 是不是因为Sleep的次数太多?谢谢了


--
数年前的这一天,她正被那携带着巨大骨龙的灰袍女孩拦下。银眸、黑发、
赤足以及巨大的死神镰刀,一起构成了一副令人永生不忘的画卷。

那一刻的感觉,自此铭刻在她的心底,并在此时重新升起,占据了她意识的
全部空间,从此定格。


※ 来源:·水木社区 newsmth.net·[FROM: 221.217.175.*]

[本篇全文] [本篇作者:Nineteen] [进入讨论区] [返回顶部]9发信人: Nineteen (在哪里倒下,就在哪里躺下!), 信区: DotNET
标 题: Re: C#写的多线程程序出现下面的错误是怎么回事?
发信站: 水木社区 (Sat Jan 6 14:34:58 2007), 站内

或者让线程等在一个event上也好啊
【 在 Nineteen (在哪里倒下,就在哪里躺下!) 的大作中提到: 】
: 当队列中有新的Item加进来,应该让队列对象主动的push一个event,而不应该让线程去拉.


--
数年前的这一天,她正被那携带着巨大骨龙的灰袍女孩拦下。银眸、黑发、
赤足以及巨大的死神镰刀,一起构成了一副令人永生不忘的画卷。

那一刻的感觉,自此铭刻在她的心底,并在此时重新升起,占据了她意识的
全部空间,从此定格。


※ 来源:·水木社区 newsmth.net·[FROM: 221.217.175.*]

[本篇全文] [本篇作者:ahxnwubh1983] [进入讨论区] [返回顶部]10发信人: ahxnwubh1983 (小碧), 信区: DotNET
标 题: Re: C#写的多线程程序出现下面的错误是怎么回事?
发信站: 水木社区 (Sat Jan 6 14:35:40 2007), 站内

这二者有什么区别吗?
【 在 Nineteen (在哪里倒下,就在哪里躺下!) 的大作中提到: 】
: 当队列中有新的Item加进来,应该让队列对象主动的push一个event,而不应该让线程去拉.


--

※ 来源:·水木社区 newsmth.net·[FROM: 211.99.222.*]

[本篇全文] [本篇作者:pseudocode] [进入讨论区] [返回顶部]11发信人: pseudocode (I can Run!), 信区: DotNET
标 题: Re: C#写的多线程程序出现下面的错误是怎么回事?
发信站: 水木社区 (Sat Jan 6 14:44:38 2007), 站内

一个是主动去看有没有要处理的
另一个是有东西要处理了才醒过来

【 在 ahxnwubh1983 (小碧) 的大作中提到: 】
: 这二者有什么区别吗?


--

※ 来源:·水木社区 newsmth.net·[FROM: 222.129.33.*]

求教:attribute方面的一个问题

发信人: jueww (觉·无我), 信区: DotNET
标 题: 求教:attribute方面的一个问题
发信站: 水木社区 (Sat Jan 6 11:58:50 2007), 站内

我写了下面一个测试程序:
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential)]
public struct Point
{
public int x;
public int y;
}

class TestApplication
{
public static void Main()
{
Type type = typeof(Point);//ioint);
foreach(Attribute attr in type.GetCustomAttributes(true))
{
StructLayoutAttribute structLayout = attr as StructLayoutAttribute;
if(structLayout != null)
{
Console.WriteLine("Pack = {0}",structLayout.Value);
}
}
}
}
期望输出attribute的值,但实际结果发现GetCustomAttributes返回为空,这是为什么?


[本篇全文] [本篇作者:pseudocode] [进入讨论区] [返回顶部]4发信人: pseudocode (I can Run!), 信区: DotNET
标 题: Re: 求教:attribute方面的一个问题
发信站: 水木社区 (Sat Jan 6 15:31:18 2007), 站内

 structLayout 用GetCustomAttributes得不到的
type类直接有一个属性是StructLayoutAttribute
这个直接取就好了

求教CollectionBase方面的一个问题

发信人: jueww (觉·无我), 信区: DotNET
标 题: 求教CollectionBase方面的一个问题
发信站: 水木社区 (Sat Jan 6 15:12:01 2007), 站内

我在学习CollectionBase在MSDN中的一个例子时,发现一个疑问。这个例子如下:
using System;
using System.Collections;

public class Int16Collection : CollectionBase {

public Int16 this[ int index ] {
get {
return( (Int16) List[index] );
}
set {
List[index] = value;
}
}

public int Add( Int16 value ) {
return( List.Add( value ) );
}

public int IndexOf( Int16 value ) {
return( List.IndexOf( value ) );
}

public void Insert( int index, Int16 value ) {
List.Insert( index, value );
}

public void Remove( Int16 value ) {
List.Remove( value );
}

public bool Contains( Int16 value ) {
// If value is not of type Int16, this will return false.
return( List.Contains( value ) );
}

protected override void OnInsert( int index, Object value ) {
// Insert additional code to be run only when inserting values.
}

protected override void OnRemove( int index, Object value ) {
// Insert additional code to be run only when removing values.
}

protected override void OnSet( int index, Object oldValue, Object newValue ) {
// Insert additional code to be run only when setting values.
}

protected override void OnValidate( Object value ) {
if ( value.GetType() != typeof(System.Int16) )
throw new ArgumentException( "value must be of type Int16.", "value" );
}

}


public class SamplesCollectionBase {

public static void Main() {

// Create and initialize a new CollectionBase.
Int16Collection myI16 = new Int16Collection();

// Add elements to the collection.
myI16.Add( (Int16) 1 );
}

这里在子类Int16Collection中出现了一个List,是CollectionBase的一个抽象property,那么这个List的field出现在哪儿呢?是在CollectionBase中的一个private吗?
--

※ 来源:·水木社区 http://newsmth.net·[FROM: 220.152.128.*]

[本篇全文] [本篇作者:pseudocode] [进入讨论区] [返回顶部]2发信人: pseudocode (I can Run!), 信区: DotNET
标 题: Re: 求教CollectionBase方面的一个问题
发信站: 水木社区 (Sat Jan 6 15:34:12 2007), 站内

CollectionBase的protect属性

【 在 jueww (觉·无我) 的大作中提到: 】
: 我在学习CollectionBase在MSDN中的一个例子时,发现一个疑问。这个例子如下:
: using System;
: using System.Collections;
: ...................

Friday, January 05, 2007

记忆消失之路 Down Memory Lane by Mike Resnick

执子之手,与子偕老
即使往事尽忘,也要相依相守.

最近从科幻世界杂志社那里邮购了几本前几年的科幻世界译文版,
2005年11月下半月版上的记忆消失之路,给我很深的印象.
故事讲的是一对老夫妻,相守相依60年,妻子得了老年痴呆症,渐渐的忘记了所有,慢慢的连她的丈夫都忘记了.
妻子后来进了老年疗养院,故事的男主人公,为了能够再和妻子在一起,不惜动手术,让自己的记忆也慢慢消失,和得了老年痴呆症一样.
在故事的最后,男女主人公在疗养院相遇,虽然他们不再记得以往,但是他们还是互相吸引,最终还是在一起.

因为我的爷爷和外公到了晚年,都得了老年痴呆症,刚开始是忘记一些事情,后面就完全像个小孩子似的.
就是不知道这个病会不会遗传,也许我老了也会这样吧,呵呵

里面的几句话:
"这可能是这种病的唯一好处." "你现在明白将要面对的是什么,但随着病情的加重,你很快就会意识不到自己的智力正在逐渐衰退.可想而知,刚开始时,你会觉得非常难过,我们也会对你进行抗忧郁治疗.但很快你就不需要这种治疗,因为你不会再记得你曾拥有比发病时更高级的智力水平"
"你是一个成年人,而她呢,除了外表,整个人已经退回到四岁孩子的思维状态了. 你们之间已经没有共同点了."
"我们一起度过了整个人生,这就是我们的共同点!"
"今天我又看到那个漂亮的小女孩了.我从花盆里摘了一朵花给她,她微笑着说谢谢你.我们在一起谈了很多话,她说真高兴认识我,感觉非常快乐.我说我也一样.我觉得我们能成为非常亲密的好朋友,因为我们都喜欢对方,而且觉得有很多共同之处.我问她叫什么名字,但她已经不记得了,所有我决定以后就叫她温格多林.好像很久以前,我也认识一个人也叫这个名字.对于一个新结识的漂亮朋友来说,这个名字是不错的选择."
后面的链接是文章的原版.

http://www.asimovs.com/_issue_0604_5/memorylane.shtml