小编D J*_*D J的帖子

如何使用某些脚本为wpf 4.5应用程序创建安装程序包

我需要通过脚本为我的WPF应用程序创建可安装的设置.我不知道从哪里开始,最好的方法是什么.请帮忙.

c# wpf installer setup-project .net-4.5

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

WPF + PRISM如何在运行时更改区域

我需要根据RegionName绑定加载区域.喜欢的东西

 <ContentControl cal:RegionManager.RegionName="{Binding CustomRegionName}"
                    Grid.Column="2"/>
Run Code Online (Sandbox Code Playgroud)

所有地区都已正确注册.如果我更改CustomRegionName的值,则该区域永远不会更改.我怎样才能做到这一点?

wpf prism

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

如何制作通用的单例基类C#

我正在尝试创建一个通用的单例基类

public class SingletonBase<T> where T : class, new()
{
    private static object lockingObject = new object();
    private static T singleTonObject;
    protected SingletonBase()
    {

    }

    public static T Instance
    {
        get
        {
            return InstanceCreation();
        }
    }
    public static T InstanceCreation()
    {
        if(singleTonObject == null)
        {
             lock (lockingObject)
             {
                  if(singleTonObject == null)
                  {
                       singleTonObject = new T();
                  }
             }
        }
        return singleTonObject;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我必须将构造函数作为派生的公共构造函数.

public class Test : SingletonBase<Test>
{
    public void A()
    {

    }
    private Test()
        : base()
    { …
Run Code Online (Sandbox Code Playgroud)

c# generics singleton

5
推荐指数
1
解决办法
9322
查看次数

UI上的可观察集合更改不会从后台更新,但普通属性会收到通知

我有两节课

public class ConccClass<T> : ObservableCollection<T>
{
}
Run Code Online (Sandbox Code Playgroud)

public class TestTherad: INotifyPropertyChanged
{
    private string name;
    public string Name
    { get {
        return name;
    }
        set
        {
            if (value != name)
            {
                name = value;
                RaisePropertyChanged("Name");
            }
        }
    }
    //// the notification implemented fully here
}
Run Code Online (Sandbox Code Playgroud)

现在我在我的视图模型中创建了一个'ConccClass'集合,并在视图中使用xaml上的datagrid绑定它.

问题当我在后台线程上添加一个项目而没有任何dispact时它不会反映在datagrid中.表示没有添加任何项目 Todo这个我必须在Dispatcher中添加项目.BeginInvoke的.这对我来说很有意义.

但要更新任何物品的名称,我不需要调度员.

Task.Factory.StartNew(() =>
        {
            while (true)
            {
                Thread.Sleep(100);
                {
                    this.Dispatcher.Invoke(() => this.Coll.Add(new TestTherad())); // **Works well**
                    //this.Coll.Add(new TestTherad()); // **does not work at all.**
                    this.Coll[0].Name = r.Next().ToString(); // ** without …
Run Code Online (Sandbox Code Playgroud)

c# wpf datagrid

5
推荐指数
1
解决办法
1458
查看次数

SyncRoot对象真的是线程安全的吗?

我是SyncRoot概念的新手.据我所知,用于锁定的对象应该是私有的.

但是HashTable有一个公共属性,SyncRoot它只是一个私有SyncRoot对象的包装器.它建议你锁定HashTable.SyncRoot枚举该集合的时候.

看起来我们可能会失败,因为它不再是私有的.它真的是线程安全吗?

如果我制作自己的私人锁定机制怎么办? private readonly object _syncObject;

哪一个更好,为什么?

c# multithreading thread-safety syncroot

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

如何在 Enterprise Architect 中合并 EAP 文件

如果两个人正在处理同一个 EAP 文件,后来想要合并它。他们能做到吗?

是否可以合并两个EAP文件?

merge enterprise-architect

3
推荐指数
1
解决办法
7306
查看次数

如何平行和连续地处理集合中的项目

我有一个集合,其中包含要处理的元素,最多只能处理四个元素.在运行时,所有进程一起启动,所有进程都处于等待状态.一次只处理四个元素.

问题是随机选择处理元素,因为所有线程都在等待资源获得释放.意味着第一个元素可以是集合中的最后一个元素.

但是,我需要按照它们在集合中的顺序处理元素.

请告诉我如何实现这一目标?

我正在使用TPL和C#4.0

.net c# multithreading task-parallel-library

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

如何在Firebird中将字段声明为varchar(max)

如何在Firebird中使用varchar(max)声明此表?

CREATE TABLE MyUser
(
Id   INT,   -- unique id of user
Signature   VARCHAR(max),  
Login   VARCHAR(50),   
UserPassword   VARCHAR(100),    
CONSTRAINT PK_MyUser PRIMARY KEY (Id) 
);
COMMIT;
Run Code Online (Sandbox Code Playgroud)

可能吗?

database firebird create-table

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

如何在C#中模拟多重继承?

可能重复:
C#中的多重继承

我知道C#不支持类中的多重继承.

不过,我需要做补充的功能 ClassA和ClassB的MyClass中:

public class ClassA
{
    /* Third party class*/
}
public class ClassB
{
    /* Third party class*/
}

public class MyClass : ClassA, ClassB
{
    /*Compilation error*/
}
Run Code Online (Sandbox Code Playgroud)

有什么办法可以实现吗?

.net c# inheritance

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

非阻塞与并行(TPL)的互锁使用问题

我对多线程中代码的准确性感到困惑,因为有些时候我得到了错误的结果.

看起来可能会失败.下面是代码.

public class MyKeyValue
{
    public double Key { get; set; }
    public double Value { get; set; }
}

public class CollMyKeyValue : List<MyKeyValue>
{
    public void SumUpValues(CollMyKeyValue collection)
    {
        int count =0;
        Parallel.For(count, this.Count, 
        (i) => 
        {
            this[count].Value = this[count].Value + collection[count].Value;
            Interlocked.Increment(ref count);
        });  
    }
}
Run Code Online (Sandbox Code Playgroud)

假设两个集合中的密钥相同.

我想将一个集合的值添加到另一个集合中.它安全吗?

我没有把this[count].Value = this[count].Value + collection[count].Value;线程安全块.

c# multithreading task-parallel-library

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

如何同时在两个变量中获取新Object的引用?

我需要同时在两个变量中获取新Object的引用.有点像

Object o1,o2 = new Object();
Run Code Online (Sandbox Code Playgroud)

这有可能吗?

提前致谢..

c#

0
推荐指数
1
解决办法
91
查看次数

为什么我应该等待?

我是async/await的新手.但我创建了POC,但我仍然感到困惑.

方法的结果

public async void WriteLineFunc(string str)
    {
        await Task.Factory.StartNew(() => WaitFor2Secs());
        //WaitFor2Secs();
        Console.WriteLine(str);
    }
Run Code Online (Sandbox Code Playgroud)

public async void WriteLineFunc(string str)
    {
        //await Task.Factory.StartNew(() => WaitFor2Secs());
        WaitFor2Secs();
        Console.WriteLine(str);
    }
Run Code Online (Sandbox Code Playgroud)

是一样的.制作等待方法的重点是什么?只是在其他线程上运行一个函数并等待它完成?

c# multithreading asynchronous async-await c#-5.0

0
推荐指数
1
解决办法
278
查看次数