小编Max*_*sky的帖子

如何等待线程完成.NET?

我以前从未在C#中使用线程,我需要有两个线程,以及主UI线程.基本上,我有以下几点.

public void StartTheActions()
{
  //Starting thread 1....
  Thread t1 = new Thread(new ThreadStart(action1));
  t1.Start();

  // Now, I want for the main thread (which is calling `StartTheActions` method) 
  // to wait for `t1` to finish. I've created an event in `action1` for this. 
  // The I wish `t2` to start...

  Thread t2 = new Thread(new ThreadStart(action2));
  t2.Start();
}
Run Code Online (Sandbox Code Playgroud)

所以,基本上,我的问题是如何让一个线程等待另一个线程完成.做这个的最好方式是什么?

c# multithreading

167
推荐指数
5
解决办法
32万
查看次数

将CookieContainer与WebClient类一起使用

我之前使用过带有HttpWebRequest和HttpWebResponse会话的CookieContainer,但现在,我想将它与WebClient一起使用.据我所知,没有像HttpWebRequests(request.CookieContainer)那样的内置方法.如何从CookieContainer中的WebClient收集cookie?

我用Google搜索并找到以下示例:

public class CookieAwareWebClient : WebClient
{
    private readonly CookieContainer m_container = new CookieContainer();

    protected override WebRequest GetWebRequest(Uri address)
    {
        WebRequest request = base.GetWebRequest(address);
        HttpWebRequest webRequest = request as HttpWebRequest;
        if (webRequest != null)
        {
            webRequest.CookieContainer = m_container;
        }
        return request;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是最好的方法吗?

c# cookies webclient httpwebrequest cookiecontainer

142
推荐指数
5
解决办法
13万
查看次数

在ASP.NET MVC中的静态字段内使用Server.MapPath()

我正在构建一个ASP.NET MVC站点,我正在使用Lucene.Net进行搜索查询.我在这里问了一个关于如何在ASP.NET MVC应用程序中正确构建Lucene.Net用法的问题,并被告知最好的方法是将my声明IndexWriterpublic static,以便可以重用它.

以下是我的SearchController顶部的一些代码:

public static string IndexLocation = Server.MapPath("~/lucene");
public static Lucene.Net.Analysis.Standard.StandardAnalyzer analyzer = new Lucene.Net.Analysis.Standard.StandardAnalyzer();
public static IndexWriter writer = new IndexWriter(IndexLocation,analyzer);
Run Code Online (Sandbox Code Playgroud)

由于writer是静态的,IndexLocation也必须是静态的.因此,编译器给出了以下错误Server.MapPath():

非静态字段,方法或属性'System.Web.Mvc.Controller.Server.get'需要对象引用

没有办法在静态字段中使用Server.MapPath()或类似的东西?我该如何解决这个错误?

c# asp.net-mvc static lucene.net server.mappath

114
推荐指数
2
解决办法
11万
查看次数

从YouTube下载视频

我希望从YouTube下载视频,然后提取其音频.

任何人都可以指点一些C#代码来下载视频吗?

为了澄清,我已经知道如何从像这样的.FLV文件中提取音频.

.net c# youtube youtube-api

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

绘制Pandas GroupBy的结果

我开始学习熊猫,并试图找到最多的Pythonic(或panda-thonic?)方法来完成某些任务.

假设我们有一个包含A,B和C列的DataFrame.

  • A列包含布尔值:每行的A值为true或false.
  • B列有一些我们想要绘制的重要值.

我们想要发现的是A值设置为false的行的B值与A值为真的行的B值之间的细微差别.

换句话说,如何按列A的值(true或false)进行分组,然后在同一图表上绘制B列的值?两个数据集的颜色应不同,以便能够区分这些点.


接下来,让我们为这个程序添加另一个功能:在绘图之前,我们想为每一行计算另一个值并将其存储在D列中.这个值是记录前整个五分钟存储在B中的所有数据的平均值 - 但是我们只包含存储在A中的具有相同布尔值的行.

换句话说,如果我有一行A=Truetime=t,我想计算列D的值,它是从时间t-5t具有相同的所有记录的B的平均值A=True.

在这种情况下,我们如何在A的值上执行groupby,然后将此计算应用于每个单独的组,最后绘制两个组的D值?

python group-by matplotlib data-analysis pandas

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

为什么ASP.NET/Visual Studio Web开发服务器这么慢?

编译 -  XKCD(xkcd)

我知道现在的编译速度比以前快得多.然而,对我来说,使用Visual Studio Web开发服务器编译,尤其是运行/调试ASP.NET项目似乎非常慢.

从去年夏天开始,我一直在努力研究ASP.NET MVC项目.当然,调试它们的最佳方法是使用Visual Studio附带的Web服务器.这样做时,加载时间非常慢.Chrome开发工具通常会报告加载我的一个页面有3 分钟的等待时间,然后加载时间很短.

我见过 两个问题,但是没有用.虽然我在Chrome中进行了大部分调试工作,但在IE中也是如此.

以前有其他人有这个问题吗?如果是这样,任何提示?

另外,我怀疑问题在于机器的速度.这台计算机运行的Windows 7和Visual Studio 2010非常快,所以我不明白为什么ASP.NET调试应该这么慢.


更新:在下面的回答中,Jon Skeet建议尝试确定问题是由环境还是由代码本身引起的.我创建了一个全新的MVC项目并运行它.第一次测试似乎要快得多.然而,经过几次测试之后,可以肯定地说第一次测试是异常的 - 通常,它需要我的大项目(2 - 3分钟).因此,这是环境问题.在此先感谢您的帮助!


更新#2:我更新了这个问题已经有一段时间了.以下是自上次更新以来我收集的一些细节:

  • 在我的两台开发机器上都出现了这种延迟,包括运行Windows 7和Visual Studio 2010
  • 我的所有MVC2和MVC3项目都发生了这种延迟(但我还没有尝试过普通的ASP.NET)
  • 普通/ vanilla MVC项目与具有大代码库的MVC项目经历相同的延迟
  • 禁用IntelliTrace没有帮助
  • 禁用IPv6没有帮助

我还没有找到解决这个问题的方法,所以我一直在等待很长时间.有谁知道如何解决这个问题?

c# asp.net debugging asp.net-mvc visual-studio

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

使用OpenID(通过DotNetOpenAuth)以及用户角色和其他成员资格提供程序功能

我正在构建一个ASP.NET MVC站点,我想使用DotNetOpenAuth来实现OpenID登录(我完全放弃了基于用户名/密码的登录).

到目前为止,我一直在使用角色系统,配置文件系统和基本注册系统,使用ASP.NET成员资格提供程序编写默认用户名/密码系统的代码.现在,在我迁移到OpenID时,我预见到了一些问题,特别是与ASP.NET成员资格提供程序提供的成员控制接口.

看看DotNetOpenAuth MVC示例,我看到对FormsAuthentication系统的唯一引用是创建一个AuthCookie以后再调用FormsAuthentication.SignOut().因此,我不确定是否可以在此OpenID系统中使用ASP.NET成员资格提供程序函数,尽管示例代码调用的另一部分User.Identity.IsAuthenticated.


这个OpenID系统是否会与ASP.NET Membership Provider接口?如果没有,我能以某种方式解决这个问题吗?

如果以上是完全不可能的,我认为我的下一步行动就是滚动我自己的数据库表并手动编写代码以便从我的帐户控制器中使用它们.我注意到Stack Exchange Data Explorer采用了这种方法,但这是正确的做法吗?


编辑:只是为了确保我使用正确的术语,"ASP.NET成员资格提供程序",我指的是使用该aspnet_regsql.exe工具生成的表的提供程序.

c# openid asp.net-mvc asp.net-membership dotnetopenauth

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

C#:将CookieContainer写入磁盘并重新加载以供使用

CookieContainer从一个名为CookieJar的HttpWebRequest/HttpWebResponse会话中提取.我希望我的应用程序在运行之间存储cookie,因此CookieContainer在程序的一次运行中收集的cookie 也将在下一次运行时使用.

我认为这样做的方法是以某种方式将CookieContainer的内容写入磁盘.我的问题是:

  • 你如何写一个CookieContainer到磁盘?是否有内置功能,或者,如果没有,人们采取了哪些方法?有没有可用于简化此类的课程?
  • 一旦你将CookieContainer写入磁盘,你如何重新加载它

UPDATE:第一个答案已经提出系列化CookieContainer.但是,我不太熟悉如何序列化和反序列化这些复杂的对象.你能提供一些示例代码吗?建议是利用SOAPFormatter.

c# cookies file-io httpwebrequest cookiecontainer

28
推荐指数
4
解决办法
2万
查看次数

.NET:WebBrowser,WebClient,WebRequest,HTTPWebRequest ...... ARGH!

在System.Net命名空间中,有许多具有相似名称的不同类,例如:

  • WebBrowser和WebClient
  • WebRequest和HTTPWebRequest
  • WebResponse和HTTPWebResponse

那些是我很好奇的主要.

每个人的功能是什么?他们彼此如何不同?

另外,在什么情况下你会使用哪个?

.net c# system.net

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

从jQuery中的多选下拉列表中取消选择所有元素

我有一个多选下拉如下,我选择了"测试2"和"测试3"选项.

<select id="edit-rec" class="form-select" multiple="multiple" name="rec[]">
<option value="6012">Test 1</option>
<option value="8436">Test 2</option>
<option value="4689">Test 3</option>
<option value="6784">Test 4</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我有一个名为"Deselect All"的按钮.单击此按钮时,应取消选择所有选定的项目.在这种情况下,我之前选择的项目"测试2"和"测试3"现在应该被取消选择.

我怎样才能使用jQuery实现这一目标?

jquery clear multi-select

27
推荐指数
5
解决办法
6万
查看次数