小编ABC*_*BCD的帖子

在WPF中更改光标有时会起作用,有时则不然

在我的几个用户控件中,我使用了更改光标

this.Cursor = Cursors.Wait;
Run Code Online (Sandbox Code Playgroud)

当我点击某些东西时.

现在我想在按钮点击的WPF页面上做同样的事情.当我将鼠标悬停在我的按钮上时,光标会变为一只手,但是当我单击它时,它不会更改为等待光标.我想知道这是否与它是一个按钮,或者因为这是一个页面而不是用户控件这一事实有关?这看似奇怪的行为.

c# wpf

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

为什么在WCF中需要KnownTypeAttribute

我正在学习WCF并且不了解KnowTypeAttribute的真正优势.有人可以解释我为什么需要它吗?

.net c# wcf

12
推荐指数
3
解决办法
8469
查看次数

CallerMemberNameAttribute是否使用反射

在实现INotifyPropertyChanged接口时,可以使用CallerMemberName属性来避免将成员名称指定为被调用方法的String参数.

问题是它是否使用场景背后的反射?硬编码属性名称是否有任何性能损失?

.net c# reflection mvvm inotifypropertychanged

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

WaitCallback中下划线的含义

ThreadPool.QueueUserWorkItem(new WaitCallback((_) => { MyMethod(param1, Param2); }), null);
Run Code Online (Sandbox Code Playgroud)

你能解释一下WaitCallBack构造函数中下划线(_)的含义吗?

.net c# linq multithreading

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

DataSet级联和内存消耗

我有一个应用程序,它使用DataSet.WriteXML导出数据和DataSet.ReadXML导入数据.在导入过程中,我需要更改某些主键作为应用程序逻辑的一部分.

当有超过500K的记录时,它会写入XML并成功读取XML.一旦我更改主键,它会等待一段时间并抛出OutOfMemory异常.我相信的原因是,它必须做很多级联更新.我在主键更改期间尝试了BeginEdit和EndEdit,但在这种情况下仍然在EndEdit中失败.

据我所知,DataSet还将一些以前的数据保存在内存中.有没有办法以一种消耗最小记忆的方式优化DataSet更新操作?

.net c# memory memory-management dataset

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

SetValue 64位机器注册表

我想在下面的注册表路径中设置“NoModify”的值。“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\XXXX”

我使用下面的代码,它仅适用于 X86 机器。您能看出这对于 x64 机器不起作用的任何原因吗?

// This value is correct
RegistryView registryView = releaseFlags.Contains("PLATFORM_X86") ? RegistryView.Registry64 : RegistryView.Registry32;

    using (RegistryKey hkeyLocalMachine = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, registryView))
    {
        RegistryKey noModifyKey = hkeyLocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{xxxx}", true); //SL: Key Name

        if (noModifyKey != null)
        {
            noModifyKey.SetValue("NoModify", 0);
            noModifyKey.Flush();
        }
    }
Run Code Online (Sandbox Code Playgroud)

.net c# registry installation 64-bit

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

数据集写入文件

我有一个DataSet600K records.
当我尝试将这些数据写入XML文件时,我OutOfMemoryException总是得到。
以下是我目前写入数据的方式。 执行此操作最有效的内存

方法是什么?

using (MemoryStream output = new MemoryStream())
{
    WorkingDataset.WriteXml(output, XmlWriteMode.WriteSchema);
    using (FileStream outputFile = File.Create(FilePath))
    {
         using (GZipStream compressedStream = new GZipStream(outputFile, CompressionMode.Compress))
         {
        compressedStream.Write(output.GetBuffer(), 0, (int)output.Length);
         }
        }
  }
Run Code Online (Sandbox Code Playgroud)

.net c# dataset filestream

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

ConcurrentQueue中的Enqueue和TryDequeue

有一个ConcurrentQueue实例和两个同时访问它的线程.一个线程逐项排列项目(可能在100微秒内排队几个项目)和其他线程TryDequeue逐项排队并进行一些处理.有一个ManualResetEvent在任何项目入队后发出处理线程的信号(这与这个问题没有多大关系)

在这种情况下,是否有可能以错误的顺序向ConcurrentQueue添加项目.我知道它的线程是安全的,但只是想确定它是否在排队和出列的时候不会弄乱项目的顺序.

.net c# multithreading thread-safety

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

注册表中UnistallString的用途是什么

有谁知道注册表中 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall{xxxx}-->UninstallString 的用途吗?

我的印象是“添加/删除程序”使用 MsiExec 来卸载任何应用程序。但事实并非如此,“添加/删除程序”不使用它。是否有任何其他注册表值与添加/删除程序使用的类似?

.net c# registry installation installshield

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