小编Tim*_*oyd的帖子

动态关键字问题

请告诉我在哪个版本中引入了动态关键字?我在VS2010中发现了奇怪的行为.我将目标框架设置为3.5.但是没有编译器错误.只需将目标框架的控制台应用程序创建到.net 3.5并使用dynamic关键字.

.net c# dynamic

10
推荐指数
3
解决办法
2万
查看次数

为什么无法获取已启动进程的主窗口句柄?

我有一种情况,我在我的代码中启动一个进程,以便建立一个IPC通道.我正在开始的过程是一个没有CLR支持的MFC应用程序.我开始这个过程的应用程序是WPF应用程序中的C#模块(我认为这不是我的问题的结果).这适用于支持CLR的应用程序版本,它适用于除部署目标之外的每台计算机,Windows 7的触摸屏计算机.但出于某种原因,当我尝试使用此确切方案时,Process对象永远不会解析主窗口句柄(Process.MainWindowHandle).这样做有另一种(甚至是pinvoke)方法吗?这是安全的事吗?我是那个盯着这个过程的人.进程的主窗口句柄确实存在.我看不出有什么不对.

如果它有帮助,这是我的代码.

        _applicationProcess = new Process();
        _applicationProcess.StartInfo.FileName = _strProcessPath;
        _applicationProcess.StartInfo.Arguments = _strProcessArguments;
        _applicationProcess.Start();

        long nTicks = Environment.TickCount;
        if (_applicationProcess.WaitForInputIdle(1 /*minute(s)*/ * 60000))
        {
            try
            {
                do
                {
                    // Don't let total processing take more than 1 minute(s).
                    if (Environment.TickCount > nTicks + 1 /*minute(s)*/ * 60000)
                        throw new ApplicationException("MFCApplication.Startup failed! The main window handle is zero!");

                    _applicationProcess.Refresh();
                }
                while (_applicationProcess.MainWindowHandle.ToInt32() == 0);

                _applicationHandle = new IntPtr(_applicationProcess.MainWindowHandle.ToInt32());
            }
            catch (Exception ex)
            {
                //Do some stuff...
                throw;
            }
        } …
Run Code Online (Sandbox Code Playgroud)

c# wpf mfc ipc process

9
推荐指数
1
解决办法
1万
查看次数

使用API​​将图像/视频发布到MySpace?

我正在使用c#2008在Asp.net 3.5中工作.我已经完成了身份验证部分,我还可以从我的应用程序中获取所有图像URL或视频.我也可以向MySpace发送消息.现在我想发布图片和视频.

请让我知道如何从我的应用程序发布图像/视频.

c# asp.net myspace

9
推荐指数
1
解决办法
489
查看次数

CLR是否执行"锁定省略"优化?如果不是为什么不呢?

JVM执行一个称为锁定省略的巧妙技巧,以避免锁定仅对一个线程可见的对象的成本.

这里有一个很好的描述:

http://www.ibm.com/developerworks/java/library/j-jtp10185/

.Net CLR是否有类似的功能?如果不是那么为什么不呢?

.net java clr multithreading locking

9
推荐指数
2
解决办法
1269
查看次数

WPF依赖属性设计如何节省内存消耗?

我在以下链接中读到了这个: -

http://www.informit.com/articles/article.aspx?p=688529&seqNum=2

但是,因为GetValue和SetValue在内部使用高效的稀疏存储系统,并且因为IsDefaultProperty是静态字段(而不是实例字段),所以依赖属性实现与典型的.NET属性相比可以节省每个实例的内存.如果WPF控件上的所有属性都是围绕实例字段的包装器(与大多数.NET属性一样),则由于每个实例附加的所有本地数据,它们将占用大量内存.

但最终它们会被存储在某个地方,它如何节省内存消耗?

wpf dependency-properties

9
推荐指数
2
解决办法
3173
查看次数

并行操作批处理

在TPL(任务 - 并行 - 库)中是否有内置支持用于批处理操作?

我最近玩了一个例程,使用查找表即音译在字符数组上进行字符替换:

for (int i = 0; i < chars.Length; i++)
{
    char replaceChar;

    if (lookup.TryGetValue(chars[i], out replaceChar))
    {
        chars[i] = replaceChar;
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以看到这可能是平凡的并行化,所以跳进了第一次刺,我知道会因为任务太细粒度而表现更差:

Parallel.For(0, chars.Length, i =>
{
    char replaceChar;

    if (lookup.TryGetValue(chars[i], out replaceChar))
    {
        chars[i] = replaceChar;
    }
});
Run Code Online (Sandbox Code Playgroud)

然后我重新编写算法以使用批处理,这样就可以将工作分成不同细粒度的不同线程.这使得线程按预期使用,并且我得到了一些接近线性的加速.

我确信必须内置支持TPL中的批处理.什么是语法,我该如何使用它?

const int CharBatch = 100;
int charLen = chars.Length;

Parallel.For(0, ((charLen / CharBatch) + 1), i =>
{
    int batchUpper = ((i + 1) * CharBatch);

    for (int j = i * …
Run Code Online (Sandbox Code Playgroud)

c# parallel-processing task-parallel-library

8
推荐指数
1
解决办法
7714
查看次数

是Queue.Synchronized比使用Lock()更快?

我有一个Queue,其中Enqueue操作将由一个线程执行,Dequeue将由另一个执行.不用说,我必须为它实现一些线程安全性.

我首先尝试在每个Enqueue/Dequeue之前使用队列上的锁,因为它可以更好地控制锁定机制.它运作良好,但我的好奇心使我进行了更多测试.

然后我尝试使用Queue.Synchronized包装器保持其他所有内容相同.现在,我不确定它是否真实,但这种方法的性能似乎有点快.

你觉得,两者之间的性能确实存在一些差异,或者我只是想象这里的东西......?:)

c# queue performance multithreading .net-3.5

7
推荐指数
2
解决办法
1万
查看次数

Caliburn.Micro:以编程方式创建和绑定视图

我目前正在Caliburn.Micro中试验视图合成.我有一个工作示例,我通过"View.Model"附加属性路由将多个基于用户控件的视图注入到我的主shell中.到现在为止还挺好.

在我的应用程序中,我正在使用主要是WinForms和一些WPF的混合环境,因此没有用于Caliburn管理的WPF"shell".我希望能够按需创建我的视图,并将它们添加到我的WinForms应用程序中的占位符.

我想知道如何使用Caliburn以编程方式创建视图(将是包含子用户控件的用户控件),以便执行所有约定,模型绑定和子视图注入.

caliburn.micro

7
推荐指数
2
解决办法
6124
查看次数

Ninject:可以加载声明为internal的模块

是否可以将Ninject配置为加载已声明为的模块internal

我已经尝试配置InternalVisibleToNinject程序集,但这没有帮助.

我当然可以制作模块public,但实际上它们应该是internal.

ninject

7
推荐指数
2
解决办法
1448
查看次数

MSTest TestMethod依赖注入

我正在使用DI容器,我想用容器中解析的实例进行MSTest(VS 2010)单元测试.

我想将这些实例注入我的TestMethod或至少我的TestClass.这可能吗?

现在我的TestMethods直接调用container.Resolve<T>(xxx)我宁愿避免的,这样我的注射测试更加真实.

有人有这方面的经验吗?

提前致谢.

.net mstest dependency-injection visual-studio-2010

6
推荐指数
2
解决办法
2710
查看次数