小编mic*_*eyt的帖子

WeakEventManager RemoveHandler在异步调用时并不总是有效

我正在使用WeakEventManager<TEventSource, TEventArgs>该类来订阅C#中的事件.事件订阅工作正常,但是WeakEventManager<TEventSource, TEventArgs>.RemoveHandler从a 调用Task并不总是删除处理程序 - 当事件触发时处理程序仍然执行的大部分时间(但不是全部).

以下示例说明了这一点.

public class EventSource
{
    public event EventHandler Fired = delegate { };

    public void FireEvent()
    {
        Fired(this, EventArgs.Empty);
    }
}

class Program
{
    private static bool added, removed, handled;

    static void Main(string[] args)
    {
        for (int i = 1; i <= 100; i++)
        {
            added = removed = handled = false;

            var source = new EventSource();

            AddHandlerAsync(source).Wait();

            RemoveHandlerAsync(source).Wait();

            source.FireEvent();

            if (removed && handled) Console.WriteLine("Event handled after removal!"); …
Run Code Online (Sandbox Code Playgroud)

.net c# asynchronous

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

WPF - 从代码隐藏/附加行为绑定到显式实现的接口属性

我试图从代码隐藏设置绑定到显式实现的接口属性.代码隐藏绑定的原因是绑定属性的路径只能在运行时确定.

在XAML中,可以这样绑定(在MainWindow.xaml中的示例):

<TextBox Text="{Binding (local:IViewModel.Property)}"/>
Run Code Online (Sandbox Code Playgroud)

事实上,在代码背后的绑定以类似的方式工作(来自MainWindow.xaml.cs):

var binding = new Binding("(local:IViewModel.Property)");
Run Code Online (Sandbox Code Playgroud)

因为WPF能够获取命名空间映射.

我的问题是,当命名空间映射不存在时(例如,在附加行为中),如何形成这样的绑定?

提前谢谢了!

c# data-binding wpf xaml

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

从vb6加载DLL时找不到文件

我在VB6中使用以下语法声明并调用dll函数:

'Declare the function
Private Declare Sub MYFUNC Lib "mylib.dll" ()

'Call the function
MYFUNC
Run Code Online (Sandbox Code Playgroud)

调用该函数会导致错误File not found: mylib.dll.当应用程序从vb6 IDE或已编译的可执行文件运行时,会发生这种情况.

该DLL位于工作目录中,我已经检查过使用sysinternals中的ProcMon.exe找到它.没有失败的负载,但英特尔Fortran dll没有加载(ProcMon跟踪似乎在此之前停止).

我也尝试在WinDbg.exe中运行该应用程序,奇怪的是,它的工作原理!这条线没有失败.ProcMon跟踪显示以这种方式运行程序时加载Intel Fortran dll.

该DLL使用Fortran Composer XE 2011编译.

有人可以提供任何帮助吗?

vb6 dll interop

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

标签 统计

c# ×2

.net ×1

asynchronous ×1

data-binding ×1

dll ×1

interop ×1

vb6 ×1

wpf ×1

xaml ×1