我有一个列表Uri,我想要"点击"为了达到这个目的,我试图为每个Uri创建一个新的Web浏览器控件.我为每个Uri创建一个新线程.我遇到的问题是文档在文档之前结束是完全加载的,所以我永远不会使用DocumentComplete事件.我怎么能克服这个?
var item = new ParameterizedThreadStart(ClicIt.Click);
var thread = new Thread(item) {Name = "ClickThread"};
thread.Start(uriItem);
public static void Click(object o)
{
var url = ((UriItem)o);
Console.WriteLine(@"Clicking: " + url.Link);
var clicker = new WebBrowser { ScriptErrorsSuppressed = true };
clicker.DocumentCompleted += BrowseComplete;
if (String.IsNullOrEmpty(url.Link)) return;
if (url.Link.Equals("about:blank")) return;
if (!url.Link.StartsWith("http://") && !url.Link.StartsWith("https://"))
url.Link = "http://" + url.Link;
clicker.Navigate(url.Link);
}
Run Code Online (Sandbox Code Playgroud) 我有这两种方法,我想运行异步以保持UI响应.但是,它仍然悬挂着UI.有什么建议?
async void DoScrape()
{
var feed = new Feed();
var results = await feed.GetList();
foreach (var itemObject in results)
{
var item = new ListViewItem(itemObject.Title);
item.SubItems.Add(itemObject.Link);
item.SubItems.Add(itemObject.Description);
LstResults.Items.Add(item);
}
}
public class Feed
{
async public Task<List<ItemObject>> GetList()
{
var client = new WebClient();
string content = await client.DownloadStringTaskAsync(new Uri("anyUrl"));
var lstItemObjects = new List<ItemObject>();
var feed = new XmlDocument();
feed.LoadXml(content);
var nodes = feed.GetElementsByTagName("item");
foreach (XmlNode node in nodes)
{
var tmpItemObject = new ItemObject();
var title = …Run Code Online (Sandbox Code Playgroud) 我将是第一个承认,我是100%的C#家伙而C不适合我.但是我有问题.我需要连接7与HashUrl(HashInt),然后与HashInt连接任何帮助将不胜感激.
int main(int argc)
{
unsigned int HashInt;
HashInt = HashURL(argc);
// I need to return 7 + CheckHash(HashInt) + HashInt but not ADDING, but concanenating them
return HOWEVERTOGETTHESTRING;
}
Run Code Online (Sandbox Code Playgroud)
我应该已经指定了这个用法.它实际上将用于学生VB6项目.
Private Declare Function main Lib "checksum.dll" (ByVal pStr As String) As Long
Private Sub Command1_Click()
MsgBox main("http://hello.com")
End Sub
Run Code Online (Sandbox Code Playgroud)
C库的完整源代码是
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <string.h>
#include <winreg.h>
#include <stdlib.h>
int StrToInt(char *pStr, int Init, int Factor)
{
while (*pStr) {
Init *= Factor;
Init += *pStr++; …Run Code Online (Sandbox Code Playgroud) 我有一个函数,它处理6100个列表项的列表.当列表只有300个项目时,用于工作的代码.但是立即与6100崩溃.有没有办法我可以循环浏览这些6100个项目,一次说30个并且每个项目执行一个新线程?
for (var i = 0; i < ListProxies.Items.Count; i++)
{
var s = ListProxies.Items[i] as string;
var thread = new ParameterizedThreadStart(ProxyTest.IsAlive);
var doIt = new Thread(thread) { Name = "CheckProxy# " + i };
doIt.Start(s);
}
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
我一直在寻找.我看过100个没有真正帮助的网站.
我希望能够在单独的页面上显示用户当前的新闻Feed.
我已经读过""会做的伎俩,问题是我找不到JS SDK下载或如何使用它.
谁能帮我?
有没有一种方法来检测调用哪些API?假设我想要检测任何使用ReadProcessMemory API的应用程序.这在C#中有多可行?
我有一个我写过的C#应用程序.除了一种方法,一切都100%有效.如果启用了UAC,我无法保存文件,甚至不能保存Settings.config.我尝试使用清单文件,没有运气.我究竟做错了什么?
public static void UpdateVersionText()
{
var wc = new WebClient();
var utf8 = new UTF8Encoding();
var list = utf8.GetString(wc.DownloadData("https://www.agentsarea.co.uk/photolibrary/photos/data/version.txt"));
wc.Dispose();
Properties.Settings.Default.version = list.Trim();
Properties.Settings.Default.Save();
}
Run Code Online (Sandbox Code Playgroud) 我有一个创建新线程的按钮.该线程包含以下内容.
foreach (DataRow r in results.Rows)
{
var item = new ResultItem(this)
{
Image = r[1].ToString(),
Video = r[2].ToString(),
Title = r[3].ToString().Trim(),
Duration = r[4].ToString().Trim()
};
SearchFlow.Controls.Add(item);
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误:在一个线程上创建的控件不能作为另一个线程上的控件的父级.ResItem是自定义用户控件,它是项目的一部分,而不是第三方控件.有没有解决的办法?如何将此控件添加到新线程中的流表?