小编CLa*_*RGe的帖子

调用任何交叉线程代码的最佳方法?

我知道之前已经问过这个问题,但我正在寻找一种方法:

  1. 简化安全交叉线程代码的创建.
  2. 在任何情况下重用此代码(没有Windows窗体引用).

这是我到目前为止,但我想删除Windows窗体引用.有任何想法吗?

public delegate void SafeInvokeDelegate(System.Action action);
public class SafeInvoke
{
    private readonly System.Windows.Forms.Control _threadControl;

    public SafeInvoke()
    {
        _threadControl = new System.Windows.Forms.Control();
    }

    public void Invoke(System.Action action)
    {
        if (_threadControl.InvokeRequired)
            _threadControl.Invoke(new SafeInvokeDelegate(Invoke), new object[] {action});
        else if (action != null) action();
    }
}
Run Code Online (Sandbox Code Playgroud)

上面的类可能会这样使用:

SafeInvoke _safeInvoker = new SafeInvoke();
void SafeClearItems()
{
    _safeInvoker.Invoke(delegate
        {
            listView1.Items.Clear();
        });
}
Run Code Online (Sandbox Code Playgroud)

我如何删除SafeInvoke类中的System.Windows.Forms.Control但保持相同的功能?

.net c# invoke

36
推荐指数
4
解决办法
4万
查看次数

Expression Blend:获取错误"XXX"在名称空间"XXX"中不存在,但在VS2008中不存在

我正在尝试使用Blend 3.0来编辑包含一些WPF控件的项目.该项目已经从Visual Studio 2008编译并运行良好.

然而,在Blend中,我遇到了一些毫无意义的神秘错误:

例如,我有一个派生自Control的类:

namespace Company.WPFControls.SearchTextBox
{
    public class SearchTextBox : Control
    {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试在同一个程序集中的资源中使用它来分配样式:

<ResourceDictionary 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:local="clr-namespace:Company.WPFControls.SearchTextBox" 

    <Style TargetType="{x:Type local:SearchTextBox}">
        ...
    </Style>
</ResourceDictionary>
Run Code Online (Sandbox Code Playgroud)

我在Blend中收到以下错误:

名称"SearchTextBox"在命名空间"clr-namespace:Company.WPFControls.SearchTextBox"中不存在.

我已经尝试通过添加指定程序集名称,;assembly=Company.WPFControls但它不会删除错误.

有没有办法解决这个问题,或者至少找出问题的来源?

expression-blend expression-blend-3 expression-blend-4

29
推荐指数
3
解决办法
7816
查看次数

ASP.NET MVC现在是"开源".这是一件好事吗?

这个问题只是寻找有关ASP.NET MVC作为平台方向的反馈.我真的不是把它当作火焰诱饵发布的.我的公司正在计划一项主要的Web应用程序投资,我们需要确定ASP.NET MVC是否是正确的方向.

===

更新 Microsoft Answers

ASP.NET开发主管Scott Guthrie在他的博客上发布了这个帖子:

ASP.NET MVC是一个免费的,完全支持的 Microsoft产品,使开发人员能够使用模型 - 视图 - 控制器模式轻松构建Web应用程序

因此,只要上述语句为真,那么部署ASP.NET MVC是安全的.

ASP.NET MVC是在Microsoft公共许可证(MS-PL)下发布的.MS-PL是OSI批准的开源许可证.MS-PL不包含平台限制,并提供修改和重新分发源代码的广泛权限.

===

当微软在开源(MS-PL)许可下发布ASP.NET MVC时,我首先想到的是MS很快就会放弃对它的支持.有了这个想法,我不想因为显而易见的原因而投资掌握它.

我可能错了,所以我想在做出任何可靠决定之前得到一些反馈.

这是一件好事吗?

更新:

一位朋友问了一个关于这个主题的令人信服的问题:ASP.NET MVC开源还是共享源?这让我想到了微软的类似开源的计划和开源社区的"真实"之间的区别,如果你愿意,那就是开源.而这种差异确实引起了对微软开源的一个重要产品的担忧.并不是因为无法获得对源的访问权限.那样太好了.我希望我们可以访问Win32源代码,甚至是Windows的完整源代码.谈谈快速解决问题!关注的焦点在于MS现在是否会采取一种向ASP.NET MVC的态度.在这种情况下,我不知道是否应该使用它,因为可能需要一段时间才能获得强大的社区支持来构建最初由一家公司所拥有的源集合,该公司通常不会泄露源代码.

asp.net-mvc open-source

6
推荐指数
1
解决办法
2062
查看次数