我以前从未在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)
所以,基本上,我的问题是如何让一个线程等待另一个线程完成.做这个的最好方式是什么?
我之前使用过带有HttpWebRequest和HttpWebResponse会话的CookieContainer,但现在,我想将它与WebClient一起使用.据我所知,没有像HttpWebRequests(request.CookieContainer)那样的内置方法.如何从CookieContainer中的WebClient收集cookie?
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)
这是最好的方法吗?
我正在构建一个ASP.NET MVC站点,我正在使用Lucene.Net进行搜索查询.我在这里问了一个关于如何在ASP.NET MVC应用程序中正确构建Lucene.Net用法的问题,并被告知最好的方法是将my声明IndexWriter为public 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()或类似的东西?我该如何解决这个错误?
我希望从YouTube下载视频,然后提取其音频.
任何人都可以指点一些C#代码来下载视频吗?
为了澄清,我已经知道如何从像这样的.FLV文件中提取音频.
我开始学习熊猫,并试图找到最多的Pythonic(或panda-thonic?)方法来完成某些任务.
假设我们有一个包含A,B和C列的DataFrame.
我们想要发现的是A值设置为false的行的B值与A值为真的行的B值之间的细微差别.
换句话说,如何按列A的值(true或false)进行分组,然后在同一图表上绘制B列的值?两个数据集的颜色应不同,以便能够区分这些点.
接下来,让我们为这个程序添加另一个功能:在绘图之前,我们想为每一行计算另一个值并将其存储在D列中.这个值是记录前整个五分钟存储在B中的所有数据的平均值 - 但是我们只包含存储在A中的具有相同布尔值的行.
换句话说,如果我有一行A=True和time=t,我想计算列D的值,它是从时间t-5到t具有相同的所有记录的B的平均值A=True.
在这种情况下,我们如何在A的值上执行groupby,然后将此计算应用于每个单独的组,最后绘制两个组的D值?
(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:我更新了这个问题已经有一段时间了.以下是自上次更新以来我收集的一些细节:
我还没有找到解决这个问题的方法,所以我一直在等待很长时间.有谁知道如何解决这个问题?
我正在构建一个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工具生成的表的提供程序.
我CookieContainer从一个名为CookieJar的HttpWebRequest/HttpWebResponse会话中提取.我希望我的应用程序在运行之间存储cookie,因此CookieContainer在程序的一次运行中收集的cookie 也将在下一次运行时使用.
我认为这样做的方法是以某种方式将CookieContainer的内容写入磁盘.我的问题是:
UPDATE:第一个答案已经提出系列化的CookieContainer.但是,我不太熟悉如何序列化和反序列化这些复杂的对象.你能提供一些示例代码吗?建议是利用SOAPFormatter.
在System.Net命名空间中,有许多具有相似名称的不同类,例如:
那些是我很好奇的主要.
每个人的功能是什么?他们彼此如何不同?
另外,在什么情况下你会使用哪个?
我有一个多选下拉如下,我选择了"测试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实现这一目标?
c# ×8
asp.net-mvc ×3
.net ×2
cookies ×2
asp.net ×1
clear ×1
debugging ×1
file-io ×1
group-by ×1
jquery ×1
lucene.net ×1
matplotlib ×1
multi-select ×1
openid ×1
pandas ×1
python ×1
static ×1
system.net ×1
webclient ×1
youtube ×1
youtube-api ×1