标签: .net-4.0

可能不会在promise样式的任务上调用Start.例外即将来临

我正在创建一个简单的wpf桌面应用程序.UI只有一个按钮和.cs文件中的代码.

private void Button_Click_2(object sender, RoutedEventArgs e)
{
    FunctionA();
}

public void FunctionA()
{
    Task.Delay(5000).Start();
    MessageBox.Show("Waiting Complete");
}
Run Code Online (Sandbox Code Playgroud)

但令人惊讶的Task.Delay(5000).Start();是,线路投掷了InvalidOperationException:

可能不会在promise样式的任务上调用Start.

任何人都能帮助为什么会这样吗?

c# .net-4.0 c#-4.0

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

为什么我可以创建一个名为"var"的类?

不是varC#中的关键字?但为什么我这样做:

public class var { }

public class main
{
    public static void main(string[] args)
    {
        var testVar = new var();
    }
}
Run Code Online (Sandbox Code Playgroud)

var是在代码中使用的是var这是在之前声明的类main类.编译器甚至没有抱怨.

当我这样做时:

public class int { }
Run Code Online (Sandbox Code Playgroud)

或这个:

public class true { }
Run Code Online (Sandbox Code Playgroud)

编译器说int或者true是关键字,不能像那样使用.为什么不一样var

c# .net-4.0

103
推荐指数
4
解决办法
3005
查看次数

创建线程 - Task.Factory.StartNew vs new Thread()

我刚学习.Net 4中新的线程和并行库

在过去,我会像这样创建一个新线程(作为示例):

DataInThread = new Thread(new ThreadStart(ThreadProcedure));
DataInThread.IsBackground = true;
DataInThread.Start();
Run Code Online (Sandbox Code Playgroud)

现在我能做到:

Task t = Task.Factory.StartNew(() =>
{
   ThreadProcedure();
});
Run Code Online (Sandbox Code Playgroud)

有什么区别?

谢谢

.net c# multithreading .net-4.0

99
推荐指数
3
解决办法
10万
查看次数

寻求Excel自定义函数工具提示

之前已经 这个问题,但每次接受的答案只是使用Application.MacroOptions(VBA6)(VBA7)提供功能描述的辞职,但这些信息实际上并不是工具提示,所以它不能解决我的问题.

目标

我们都希望能够通过任何方式(VBA,VSTO或COM加载项)定义自定义函数,并为用户提供函数及其参数的弹出/工具提示描述的好处,如对于每个内置Excel函数,无论是内联还是在公式栏中都会出现:

在此输入图像描述

在此输入图像描述

对这种需求的广泛接受的答案是,定制功能是不可能的,但我希望挑战这种信念.

问题

目前,我见过的最好的人是定义函数(通常使用上面的MacroOptions调用),这样当调出函数对话框(公式栏中的fx按钮)时,它们的函数和参数说明如下所示:

在此输入图像描述

如您所见,这是一个包含许多参数的复杂函数.如果用户不知道这个"函数参数"对话框以及如何启动它,而只是熟悉Excel的标准工具提示,他们只会看到公式名称而没有其他帮助:

在此输入图像描述

他们没有机会正确提供所需的参数.(没有阅读文档,当然,没有用户做过.)

现在,高级用户可能知道通过键入Ctrl+ Shift+ A,他们将被授予一个自动完成的函数参数列表,如下所示:

在此输入图像描述

但是,当然,我们遇到与上述相同的问题,即标准的Excel用户将只用于第一张图像的默认行为,并且可能永远不会学习该功能.

在这一点上应该清楚为什么这还不够,我们想要每个内置函数都有 - 内联工具提示告诉用户如何使用该函数.

挑逗

起初,我可能已经确信除了本机Excel应用程序功能之外,这是不可能的.加载项和VBA是可扩展性功能,此工具提示可能根本不可扩展.但是这个理论受到了Analysis Toolpak插件存在的挑战.当然,它是在微软内置的,但ANALYS32.xll是一个独立的XLL加载项,就像那些可以用VB,C,C++和C#生成的加载项一样.果然,当这个XLL加载到应用程序中时,它提供的功能具有与原生excel函数相同的工具提示:

在此输入图像描述

当然,如果此信息以某种方式编码在此XLL文件中并传递给Excel,有一种方法可以使用我们自己的加载项复制它吗?我现在正处于这样的地步,我将开始自我教授一些反编译,看看我是否可以对分析工具库中发生的任何事情进行逆向工程.

你可以如何帮助

我几乎可以肯定,我已经研究了有关这个问题的所有公开信息.如果有人知道我不知道的东西可能会对此有所帮助,请随意插入.我对逆向工程编译的dll/xll非常不熟悉,所以如果有人感觉像是弹出他们的本地副本的Analysis32.xll和弄清楚它的定制功能定义是怎么回事,我非常感激.否则,我会继续深入研究这个问题,直到我遇到所有死胡同并报告我找到的东西.

c# excel decompiling .net-4.0 office-interop

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

.NET 4.0在CI服务器上构建问题

任何人都设法在CI服务器上编译.NET 4.0应用程序,而无需在CI服务器上安装Visual Studio 2010?

.NET 4.0不存在SDK.在CI服务器上安装了.NET 4.0.Msbuild.exe适用于简单项目并发出以下警告:

(GetReferenceAssemblyPaths目标) - > C:\ Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(847,9):警告MSB3644:框架".NETFramework,Version = v4.0"的引用程序集没找到.要解决此问题,请为此框架版本安装SDK或Targeting Pack,或者将应用程序重新定位到已安装SDK或Targeting Pack的框架版本.请注意,程序集将从全局程序集缓存(GAC)中解析,并将用于代替引用程序集.因此,您的程序集可能无法正确定位到您想要的框架.

.net msbuild continuous-integration build .net-4.0

98
推荐指数
3
解决办法
3万
查看次数

可以在.Net 4.0中使用元组的实际示例?

我已经看到.Net 4中引入了元组,但我无法想象它可以在哪里使用.我们总是可以创建一个Custom类或Struct.

.net c# vb.net .net-4.0 c#-4.0

97
推荐指数
10
解决办法
8万
查看次数

我怎样才能获得网站的图标?

简单问题:我创建了一个小应用程序,它基本上只是我系统托盘中的收藏夹,以便我可以从同一个地方打开常用的站点/文件夹/文件.从我的系统获取已知文件类型的默认图标并不是非常复杂,但我不知道如何从网站获取favicon.(例如,SO在地址栏中有灰色 - >橙色堆栈图标)

有谁知道我会怎么做?

c# favicon .net-4.0

97
推荐指数
10
解决办法
12万
查看次数

Windows SDK 7.1安装失败

我正在尝试使用.NET Framework 4安装适用于Windows 7的Windows SDK,但是当我打开设置时收到错误:

某些Windows SDK组件需要RTM .NET Framework 4.安装程序检测到.NET Framework 4的预发行版本.如果继续安装,则不会安装这些组件.如果要安装这些组件,请单击"取消",然后从https://go.microsoft.com/fwlink/?LinkID=187668安装.NET Framework 4 ,然后重新运行安装程序.

单击"确定"继续.

当我去安装.NET Framework 4时,会出现一条消息,说我的PC上已经存在.NET Framework 4:

Microsoft .NET Framework 4已经是操作系统的一部分.无需安装.NET Framework 4可再发行组件.更多信息.

计算机上已安装了相同或更高版本的.NET Framework 4.

我不知道该怎么办了.我使用的是Windows 10 Enterprise(x64).

.net windows installation sdk .net-4.0

95
推荐指数
3
解决办法
6万
查看次数

如何清除MemoryCache?

我使用MemoryCache类创建了一个缓存.我添加了一些项目,但是当我需要重新加载缓存时,我想首先清除它.最快的方法是什么?我应该遍历所有项目并一次删除一个项目还是有更好的方法?

c# memory caching .net-4.0 memorycache

91
推荐指数
6
解决办法
8万
查看次数

为什么.Net 4.0中的新Tuple类型是引用类型(类)而不是值类型(struct)

有谁知道答案和/或有关于它的意见?

由于元组通常不会很大,我认为使用结构比使用类更有意义.怎么说你?

performance struct class .net-4.0

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