小编DxC*_*xCK的帖子

有没有办法在netTcpBinding中启用会话和流媒体?

我写了一个需要传输大文件的WCF服务,所以我使用流媒体,但另一方面我需要进行用户名特定的初始化.

问题是每次获取用户名并执行初始化非常昂贵.如果我可以打开会话,我可以将初始化数据保存在服务实例中的本地变量中.

有没有办法在netTcpBinding中启用流媒体和会话?

.net c# streaming session wcf

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

Gtk.ListStore中的VirtualMode?

我正在寻找Gtk.ListStore中的一个功能,它像Winforms中的ListView.VirtualMode一样工作.

有类似的东西吗?

.net c# listview gtk# virtualmode

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

抛出逻辑

try
{
    try
    {
        throw new Exception("From Try");
    }
    catch
    {
        throw new Exception("From Catch");
    }
    finally
    {
        throw new Exception("From Finally");
    }
}
catch (Exception ex)
{
    Console.WriteLine(ex.Message);
}
Run Code Online (Sandbox Code Playgroud)

上面代码的输出是:From Finally.

为什么不From Catch呢?

-要么-

我怎样才能从外部捕获和记录两个例外?

.net c# exception-handling try-catch-finally try-finally

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

CLR 2.0 vs 4.0性能?

如果运行unden CLR 4.0,为CLR 2.0编译的.NET程序运行速度会更快吗?

的app.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0.30319" sku=".NETFramework,Version=v4.0,Profile=Client" />
    <supportedRuntime version="v2.0.50727"/>
  </startup>
</configuration>
Run Code Online (Sandbox Code Playgroud)

.net c# clr .net-4.0 .net-2.0

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

可取消在.NET中排序?

我在VirtualMode中使用ListView来显示非常多的行,数百万行.存储在通用列表中的行的数据.

现在我想实现一个排序功能,它将由一些Comparer对List进行排序.

问题是,目前,平均单一排序大约需要30秒,在此期间,用户无法对ListView执行任何操作,必须等到结束.

并非每个用户都会接受等待那么长时间,大多数用户会取消排序,如果他们可以,我想允许该取消功能.不幸的是,内置的List.Sort无法取消,也无法取消Array.Sort.

现在排序发生在单独的线程上,所以我可以使用Thread.Abort,但它可能会导致List损坏,对我来说是不可接受的.

除了自己重新实现整个Sort算法之外,我能做些什么吗?

谢谢.

.net c# sorting user-interface

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

waveOut (Win32API) 和多线程

我找不到任何有关 waveOut API 线程安全性的信息。

创建新的 waveOut 句柄后,我有这些线程:

线程 1:缓冲区处理。使用这些 API 函数:

  • 波输出准备标头
  • 波输出写
  • waveOutUnprepareHeader

线程2:Gui,控制器线程。使用这些 API 函数:

  • 挥手暂停
  • 波出重启
  • 波输出复位
  • 波出断环

这两个线程在同时使用相同的 waveOut 句柄时运行。在我的测试中,我没有发现功能有任何问题,但这并不意味着它是安全的。

这个架构是线程安全的吗?有没有关于waveOut API 线程安全的文档?关于 waveOut API 线程安全性还有其他建议吗?

谢谢。

audio winapi multithreading thread-safety waveout

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

在C#中实现同步算法

我试图在C#中实现同步算法,但没有成功.

为什么以下代码线程不安全?

using System;
using System.Threading;

namespace SoftwareLockTest
{
    class Program
    {
        private static volatile bool _isLocked1 = false;
        private static volatile bool _isLocked2 = false;
        private static volatile int _count = 0;

        static void Main(string[] args)
        {
            Thread thread2 = new Thread(Thread2Work);
            thread2.Start();

            Thread1Work();
        }

        public static void Thread1Work()
        {
            while (true)
            {
                _isLocked1 = true;

                while (_isLocked2)
                {
                    _isLocked1 = false;
                    while (_isLocked2) ;
                    _isLocked1 = true;
                }

                CriticalSection();
                _isLocked1 = false;
            }
        }

        public static void Thread2Work() …
Run Code Online (Sandbox Code Playgroud)

.net c# multithreading synchronization thread-safety

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

启用从资源管理器拖放到Run-As-Administrator应用程序

我构建了一个winforms应用程序,并实现了拖放功能.此功能在WinXP或Win7中从Run-As-Administrator应用程序中运行良好.

当从Win7中的非管理应用程序拖动到我的程序时,问题就变成了,它只是不起作用.

我理解这一点是因为OS过滤了消息.我在这里找到了一个解决方案:http://blog.helgeklein.com/2010/03/how-to-enable-drag-and-drop-for.html但它似乎不起作用.

这是解决方法代码:

    [DllImport("user32.dll", SetLastError = true)]
    static extern bool ChangeWindowMessageFilter(uint message, uint dwFlag);

    private const uint WM_DROPFILES = 0x233;
    private const uint WM_COPYDATA = 0x004A;
    private const uint WM_COPYGLOBALDATA = 0x0049;
    private const uint MSGFLT_ADD = 1;

    ChangeWindowMessageFilter(WM_DROPFILES, MSGFLT_ADD);
    ChangeWindowMessageFilter(WM_COPYDATA, MSGFLT_ADD);
    ChangeWindowMessageFilter(WM_COPYGLOBALDATA, MSGFLT_ADD);
Run Code Online (Sandbox Code Playgroud)

如何使它工作?

.net c# uac drag-and-drop windows-7

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

`XmlConvert.ToDateTime(String)` 和 `XmlConvert.ToString(DateTime)` 输出不一致

我有问题XmlConvertDateTime

当使用XmlConvert.ToDateTime(String)then convert将某些字符串转换DateTime回字符串时XmlConvert.ToString(DateTime),结果字符串与原始字符串不同,并且取决于本地时区。

以下控制台应用程序代码演示了该问题:

using System;
using System.Xml;

namespace DateTimeXmlConvertTest
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Original Value\t\t\t\tNew Value");
            Console.WriteLine("--------------\t\t\t\t---------");

            for (int i = -12; i <= 12; i++)
            {
                string sign = i < 0 ? "" : "+";

                string originalString = "2011-10-01T01:18:54.6652000" + sign + i.ToString("D2") + ":00";
                DateTime now = XmlConvert.ToDateTime(originalString);
                string newValue = XmlConvert.ToString(now);
                Console.WriteLine(originalString + "\t" + newValue);
            }
        } …
Run Code Online (Sandbox Code Playgroud)

.net c# xml timezone

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

避免在DbParameter.Value中装箱?

我正在使用ADO.NET来传达一些数据库,并在将DbParameter.Value属性设置为value-type时搜索避免装箱的方法.

有没有办法避免在DbParameter.Value拳击?

谢谢.

.net c# performance ado.net boxing

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

winforms标签闪烁

我有一个问题,Label控件非常闪烁.

下面是一些重现问题的代码.

怎么解决这个?

更新:前一种情况的解决方案(表单直接包含标签)是使form.DoubleBuffered = true.但这不是一般的解决方案.例如,对于SplitContainer中的标签,我该怎么办?这是我的真实情况.

更新的代码:

DoubleBufferedLabel.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace FlickerLabelTest
{
    public class DoubleBufferedLabel : Label
    {
        public DoubleBufferedLabel()
        {
            DoubleBuffered = true;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

DoubleBufferedSplitContainer.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace FlickerLabelTest
{
    public class DoubleBufferedSplitContainer : SplitContainer
    {
        public DoubleBufferedSplitContainer()
        {
            DoubleBuffered = true;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Form1.cs中:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text; …
Run Code Online (Sandbox Code Playgroud)

.net c# label flicker winforms

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

如何在x86进程中从x64进程中查找user32.dll函数地址?

如何在x86进程中从x64进程中查找user32.dll函数地址?

编辑:我的意思是我的程序运行x64,我搜索x86地址.

64-bit x86 winapi x86-64 getprocaddress

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