标签: .net-4.0

如何使用.NET 4运行时运行PowerShell?

我正在更新管理某些.NET程序集的PowerShell脚本.该脚本是针对针对.NET 2构建的程序集(与PowerShell运行的框架的相同版本)编写的,但现在需要使用.NET 4程序集以及.NET 2程序集.

由于.NET 4支持运行针对旧版本框架构建的应用程序,因此最简单的解决方案是在需要针对.NET 4程序集运行时,使用.NET 4运行时启动PowerShell.

如何使用.NET 4运行时运行PowerShell?

.net powershell .net-4.0

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

任务构造函数中的取消令牌:为什么?

某些System.Threading.Tasks.Task构造函数将a CancellationToken作为参数:

CancellationTokenSource source = new CancellationTokenSource();
Task t = new Task (/* method */, source.Token);
Run Code Online (Sandbox Code Playgroud)

令我感到困惑的是,从方法体内部无法实际获取传入的令牌(例如,没有什么比这样Task.CurrentTask.CancellationToken).必须通过某种其他机制提供令牌,例如状态对象或在lambda中捕获.

那么在构造函数中提供取消令牌的目的是什么呢?

c# .net-4.0 task-parallel-library cancellation-token

214
推荐指数
4
解决办法
5万
查看次数

'useLegacyV2RuntimeActivationPolicy'在.NET 4配置中做了什么?

在将使用SlimDX并因此具有非托管代码的项目转换为.NET 4.0时,我遇到了以下错误:

混合模式程序集是针对运行时的版本"v2.0.50727"构建的,如果没有其他配置信息,则无法在4.0运行时加载.

谷歌搜索给了我解决方案,这是将其添加到应用程序配置:

<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
  </startup>
</configuration>
Run Code Online (Sandbox Code Playgroud)

我的问题是,做了useLegacyV2RuntimeActivationPolicy什么?我找不到任何关于它的文档.

.net mixed-mode app-config .net-4.0

209
推荐指数
2
解决办法
13万
查看次数

什么时候应该使用TaskCompletionSource <T>?

AFAIK,它所知道的是,在某些时候,它SetResultSetException方法被调用以Task<T>通过其Task属性完成暴露.

换句话说,它充当a Task<TResult>及其完成的生产者.

我在这里看到这个例子:

如果我需要一种方法来异步执行Func并有一个Task来表示该操作.

public static Task<T> RunAsync<T>(Func<T> function) 
{ 
    if (function == null) throw new ArgumentNullException(“function”); 
    var tcs = new TaskCompletionSource<T>(); 
    ThreadPool.QueueUserWorkItem(_ => 
    { 
        try 
        {  
            T result = function(); 
            tcs.SetResult(result);  
        } 
        catch(Exception exc) { tcs.SetException(exc); } 
    }); 
    return tcs.Task; 
}
Run Code Online (Sandbox Code Playgroud)

可以使用*如果我没有Task.Factory.StartNew- 但我确实Task.Factory.StartNew.

题:

可有人请举例相关的情景解释直接TaskCompletionSource 而不是一个假想中,我没有的情况 Task.Factory.StartNew

.net c# .net-4.0 task-parallel-library taskcompletionsource

188
推荐指数
7
解决办法
8万
查看次数

更清洁的方法在C#中进行空检查?

假设,我有这个界面,

interface IContact
{
    IAddress address { get; set; }
}

interface IAddress
{
    string city { get; set; }
}

class Person : IPerson
{
    public IContact contact { get; set; }
}

class test
{
    private test()
    {
        var person = new Person();
        if (person.contact.address.city != null)
        {
            //this will never work if contact is itself null?
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Person.Contact.Address.City != null (这可以检查City是否为空.)

但是,如果Address或Contact或Person本身为null,则此检查将失败.

目前,我能想到的一个解决方案是:

if (Person != null && Person.Contact!=null && Person.Contact.Address!= null && Person.Contact.Address.City != …
Run Code Online (Sandbox Code Playgroud)

c# null .net-4.0 .net-4.5

180
推荐指数
9
解决办法
8万
查看次数

实现"计时器"的最佳方法是什么?

可能重复:
如何向C#控制台应用程序添加计时器

实现计时器的最佳方法是什么?代码示例会很棒!对于这个问题,"最佳"被定义为最可靠(最少数次失火)和精确.如果我指定15秒的间隔,我希望每15秒调用一次目标方法,而不是每10到20秒调用一次.另一方面,我不需要纳秒精度.在这个例子中,该方法每14.51-15.49秒触发一次是可以接受的.

c# .net-4.0

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

如何将此foreach代码转换为Parallel.ForEach?

我有点困惑Parallel.ForEach.它究竟
是什么Parallel.ForEach以及它究竟做了什么?
请不要引用任何MSDN链接.

这是一个简单的例子:

string[] lines = File.ReadAllLines(txtProxyListPath.Text);
List<string> list_lines = new List<string>(lines);

foreach (string line in list_lines)
{
    //My Stuff
}
Run Code Online (Sandbox Code Playgroud)

我该如何重写这个例子Parallel.ForEach

c# multithreading .net-4.0 parallel.foreach

174
推荐指数
5
解决办法
22万
查看次数

Razor View Engine:表达式树可能不包含动态操作

我有一个类似的模型:

public class SampleModel
{
     public Product Product { get; set; } 
}
Run Code Online (Sandbox Code Playgroud)

在我的控制器中,我尝试打印出异常

@Html.TextBoxFor(p => p.Product.Name)
Run Code Online (Sandbox Code Playgroud)

这是错误:

Exception: An expression tree may not contain a dynamic operation
Run Code Online (Sandbox Code Playgroud)

如果有人能给我一些如何解决这个问题的线索我真的很感激!

asp.net-mvc .net-4.0 razor

164
推荐指数
5
解决办法
9万
查看次数

什么是.NET 4.0中的Microsoft.csharp.dll

默认情况下,此DLL在Visual Studio 2010项目中添加.这个新组件用于什么?在使用Reflector查看它之后似乎没有多少内容,谷歌似乎也没有太多可说的.

.net .net-4.0 visual-studio-2010 visual-studio c#-4.0

162
推荐指数
2
解决办法
5万
查看次数

混合模式程序集是根据运行时的版本"v2.0.50727"构建的

我收到以下异常:

混合模式程序集是针对运行时的版本"v2.0.50727"构建的,如果没有其他配置信息,则无法在4.0运行时加载.

因为我试图从我的WPF程序导出水晶报告......

我已经在app.config中添加了以下内容......

<startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
<runtime>
  <NetFx40_LegacySecurityPolicy enabled="true"/>
</runtime>
Run Code Online (Sandbox Code Playgroud)

任何专家都可以帮忙????

参考资料我发现:http: //www.davidmoore.info/2010/12/17/running-net-2-runtime-applications-under-the-net-4-runtime

.net ado.net .net-4.0 visual-studio-2010 crystal-reports

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