我想从另一个线程中的FTP服务器下载文件.问题是,这个线程导致我的应用程序被冻结.在这里你有代码,我做错了什么?任何帮助都会感激不尽:)
(当然我想停止循环,直到线程'ReadBytesThread'终止.)我创建一个新线程:
DownloadThread = new Thread(new ThreadStart(DownloadFiles));
DownloadThread.Start();
private void DownloadFiles()
{
if (DownloadListView.InvokeRequired)
{
MyDownloadDeleg = new DownloadDelegate(Download);
DownloadListView.Invoke(MyDownloadDeleg);
}
}
private void Download()
{
foreach (DownloadingFile df in DownloadingFileList)
{
if (df.Size != "<DIR>") //don't download a directory
{
ReadBytesThread = new Thread(() => {
FileData = sendPassiveFTPcmd("RETR " + df.Path + "/" + df.Name + "\r\n");
FileStream fs = new FileStream(@"C:\Downloads\" + df.Name, FileMode.Append);
fs.Write(FileData, 0, FileData.Length);
fs.Close();
});
ReadBytesThread.Start();
(here->) ReadBytesThread.Join();
MessageBox.Show("Downloaded");
}
}
}
Run Code Online (Sandbox Code Playgroud) 我想知道一件事 - 我们知道,MVC模式是无状态的(它不使用ViewState,所以我们只使用HTML控件),但是如果我们在WebForms中也使用它们,那么它也将成为无状态?那么,通过这样做,我们越来越接近MVC模式了?
在我的存储过程中,我有一个表变量包含行ID.有两种情况 - 表变量是空的而不是.
declare @IDTable as table
(
number NUMERIC(18,0)
)
Run Code Online (Sandbox Code Playgroud)
在主查询中,我加入了该表:
inner join @IDTable tab on (tab.number = csr.id)
Run Code Online (Sandbox Code Playgroud)
但:
因为我们知道内连接如何工作,我需要我的查询返回一些行:
当@IDTable为空时
要么
仅返回@IDTable中存在的行
我也试过LEFT加入,但它不起作用.任何想法如何解决?
在页面上code.google.com/p/fakeiteasy/我注意到了这一行:
A.CallTo(() => shop.GetTopSellingCandy()).Returns(lollipop);
Run Code Online (Sandbox Code Playgroud)
所以问题是 - 如何将lambda表达式作为方法参数传递?
我有一个方法将数字从字符串转换为T,例如 int
public static T GetItemIdFromUrl<T>(string itemName)
{
try
{
...
int ad_id = int.Parse(stringNumber);
return (T)(object)ad_id;
}
catch
{
return (T)(object)-1;
}
}
Run Code Online (Sandbox Code Playgroud)
但结果我有一个十六进制代码0xffffffa5而不是91.为什么?
我想在我的页面上添加一个翻书插件(例如http://www.turnjs.com/).像这样的所有插件都使用原始<img>标签,我可以看到URL并下载图像.我想避免这种情况(我不想让用户下载图像)为此,我开始想知道一些保护措施.
在这里,我需要一些提示,我该怎么做.
我在考虑动态生成整个页面.但是,如果我加载异步页面,我可以获取URL(例如,通过FireBug)
...或使用空<img>标签,我将动态加载他们的内容?
我有一个jQuery的(简单)问题.我想做的就是使用fadeOut动画将新的HTML内容附加到div中.但是,我没有看到它(那个新的div还有display: none财产
$.post('/Home/Update', {}, function (res) {
$('<div id="myContent">' + res + '</div>')
.hide()
.appendTo('#mainContainer')
.fadeOut(1000);
});
<div id='mainContainer' style='float:left; width: 900px; height:400px; border: 1px solid Red; margin-left: 10px;'>
</div>
Run Code Online (Sandbox Code Playgroud) 我有那堂课
public class MyItem
{
public Order OrderItem { get; set; }
public string Status { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
该Status属性可以有值Error,Pending,Success
我想List<MyItem>()根据Status属性对对象进行排序.
我知道我可以代替的类型Status物业string到int,然后代替Error,Pending,Success值我可以有1,2,3然后排序操作简单.但是我想知道如果我们必须基于stringtype属性进行排序,该怎么做.
可能的顺序:
Error,Pending,Success或Success,Pending,Error
如何使用LINQ做到这一点?
我想知道如何在以下场景中使用反射机制:
public class A { }
public class B { }
public class ListA : ICollection<A> { }
public class ListB : ICollection<B> { }
public class Container
{
public ListA LA { get; set; }
public ListB LB { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后我想找一个属性,该类型继承了该类型 ICollection<B>
var container = new Container();
var found = container.GetType().GetProperties().FirstOrDefault(x => x.PropertyType == typeof(ICollection<B>));
Run Code Online (Sandbox Code Playgroud)
当然found变量是null,那么如何用反射更深入?
可能重复:
如何执行完整的递归目录和文件扫描?
我找不到任何信息,如何在C#中创建一个完整的目录列表,包括其中的所有文件及其所有子文件夹的文件,即:
c:\a.jpg
c:\b.php
c:\c\d.exe
c:\e\f.png
c:\g\h.mpg
Run Code Online (Sandbox Code Playgroud) c# ×6
jquery ×2
asp.net-mvc ×1
html ×1
invoke ×1
lambda ×1
reflection ×1
sorting ×1
t-sql ×1
webforms ×1