Asp.Net MVC,如何让控制器里面函数线程变为STAThread

我写了一个.net mvc的项目,里面需要用到webbrowser控件,但是在程序运行到webbrowser初始化时出现异常:

“System.Threading.ThreadStateException”类型的异常在 System.Windows.Forms.dll 中发生,但未在用户代码中进行处理
其他信息: 当前线程不在单线程单元中,因此无法实例化 ActiveX 控件“8856f961-340a-11d0-a96b-00c04fd705a2”。

看样子webbrowser需要在STAThread中才能正常使用,但是我在网上查了很多资料,也没有找到如何能使MVC运行的线程变为STAThread的,求教大家有没有解决方法?

3个回答

如果把WebBrowser放到单独线程里,那我要是想要从WebBrowser里取值该怎么办?
我试过在原线程定义WebBrowser wb,在新开辟的线程里实例化wb = new WebBrowser(),但是这样在原线程里wb还是null,没办法使用。

把webbrowser初始化的代码放到一个单独的线程里:
图片说明

WebBrowser初始化后我还要对它进行操作,再开辟线程没办法操作,我觉得还是需要想办法把原来的线程编程STAThread才行。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
asp.net使用短信猫发送短信失败
[STAThread] [DllImport("sms.dll", EntryPoint = "Sms_Connection")] public static extern uint Sms_Connection(string CopyRight, uint Com_Port, uint Com_BaudRate, out string Mobile_Type, out string CopyRightToCOM); [DllImport("sms.dll", EntryPoint = "Sms_Disconnection")] public static extern uint Sms_Disconnection(); [DllImport("sms.dll", EntryPoint = "Sms_Send")] public static extern uint Sms_Send(string Sms_TelNum, string Sms_Text); [DllImport("sms.dll", EntryPoint = "Sms_Receive")] public static extern uint Sms_Receive(string Sms_Type, out string Sms_Text); [DllImport("sms.dll", EntryPoint = "Sms_Delete")] public static extern uint Sms_Delete(string Sms_Index); [DllImport("sms.dll", EntryPoint = "Sms_AutoFlag")] public static extern uint Sms_AutoFlag(); [DllImport("sms.dll", EntryPoint = "Sms_NewFlag")] public static extern uint Sms_NewFlag(); 运行后提示:无法加载 DLL“sms.dll”: 找不到指定的模块。 然后将sms.dll文件放在了bin目录下和release和debug中,以及system32目录中,程序干脆启动不起来,请问这该怎么解决,就想实现在asp.net页面中点击发送按钮,短信内容和手机号写死,写死的指定手机号就能收到短信,实现起来就遇到了这个问题,请大神指点。
asp.net用短信模块通过串口给手机发送短信
[STAThread] [DllImport("sms.dll", EntryPoint = "Sms_Connection")] public static extern uint Sms_Connection(string CopyRight, uint Com_Port, uint Com_BaudRate, out string Mobile_Type, out string CopyRightToCOM); [DllImport("sms.dll", EntryPoint = "Sms_Disconnection")] public static extern uint Sms_Disconnection(); [DllImport("sms.dll", EntryPoint = "Sms_Send")] public static extern uint Sms_Send(string Sms_TelNum, string Sms_Text); [DllImport("sms.dll", EntryPoint = "Sms_Receive")] public static extern uint Sms_Receive(string Sms_Type, out string Sms_Text); [DllImport("sms.dll", EntryPoint = "Sms_Delete")] public static extern uint Sms_Delete(string Sms_Index); [DllImport("sms.dll", EntryPoint = "Sms_AutoFlag")] public static extern uint Sms_AutoFlag(); [DllImport("sms.dll", EntryPoint = "Sms_NewFlag")] public static extern uint Sms_NewFlag(); protected void Page_Load(object sender, EventArgs e) { protConnection(); } public void protConnection() { String TypeStr=""; string CopyRightToCOM=""; String CopyRightStr = "//上海迅赛信息技术有限公司,网址www.xunsai.com//"; bool connect = Sms_Connection(CopyRightStr, uint.Parse("3"), 9600, out TypeStr, out CopyRightToCOM) == 1; if (connect) { Log("串口COM3连接成功"); } else { Log("串口COM3连接失败"); } } protected void Button1_Click(object sender, EventArgs e) { string phone = this.tx2.Text; //发送短信的目标号码 string message = this.tx1.Text; //短信内容 Sms_Send(phone, message); } 页面中就一个号码框和一个短信内容文本框,一个发送按钮,sms.dll文件以经放在了system32目录下,启动程序提示:无法加载 DLL“sms.dll”: 找不到指定的模块。 然后又将sms.dll文件放在了项目bin目录下,以及release和debug目录下,程序干脆就启动不起来了,请大神指点。
“System.Threading.ThreadStateException”异常
详情: “System.Threading.ThreadStateException”类型的异常在 System.Windows.Forms.dll 中发生,但未在用户代码中进行处理 其他信息: 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。 只有将调试器附加到该进程才会引发此异常。 asp.net web 网上说加[STAThread]啥的怎么加? 代码如下: protected void Button1_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "*.jpg|*.JPG|*.gif|*.GIF|*.bmp|*.BMP"; if(ofd.ShowDialog()==DialogResult.OK) { string filepath = ofd.FileName.ToString(); FileStream fs = new FileStream(filepath, FileMode.Open,FileAccess.Read); Byte[] imagebytes = new byte[fs.Length]; BinaryReader br = new BinaryReader(fs); imagebytes = br.ReadBytes(Convert.ToInt32(fs.Length)); br.Close(); fs.Close(); SqlCommand sqlcmd = new SqlCommand("insert into battery(picture) values(@imagebytes) where No='41111'",SqlHelper.conn); SqlParameter para = new SqlParameter("@picture", SqlDbType.Image); para.Value = imagebytes; sqlcmd.Parameters.Add(para); try { SqlHelper.conn.Open(); sqlcmd.ExecuteNonQuery(); } catch(Exception) { Response.Write("<script>alert('写入失败!')</script>"); } finally { SqlHelper.conn.Close(); } } }
.net 程序点击运行之后没有反应,.net 程序无法安装
这两天之前弄的客户端软件在两个用户那边的出现了问题。 用户1:win 8.1 中文版 64bit 用户问题:用户安装软件之后,点击运行之后,毫无反应,也没有报错。 用户2:MAC 电脑,MAC OS 和win10 双系统 用户问题:用户软件安装的时候,要求安装.net 3.0,.net 2.0等程序,但是下载之后, 却报问题0x800f081f. 在我的启动代码部分有很多逻辑校验。 启动代码如下: ```c# using MarketSys.OrderManagement; using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; using System.Windows.Forms.VisualStyles; using MarketBL; namespace MarketSys { static class Program { [STAThread] static void Main() { // MessageBox.Show("I'm in"); try { //声明数据库变化类,本地校验码函数集类 DBChangeClass dbChangeFunc = new DBChangeClass(); PINManageFunc pinFunc = new PINManageFunc(); //判断数据库是否需要更改 bool bol_dbEvolTable = dbChangeFunc.existsEvolutionTable(); if (bol_dbEvolTable) { //获取更改的版本信息 bool bol_versionInfoEqual = dbChangeFunc.getVersionInfo(); if (bol_versionInfoEqual) { //判断本地数据库中是否存在本地校验码 bool bol_PINExists = pinFunc.isPinExisted(); if (bol_PINExists) { //如果存在本地校验码,则进入本地校验 LocalVerify pinVerify = new LocalVerify(); pinVerify.ShowDialog(); } else { //如果不存在本地校验,则进入本地校验设置 PINSetForm pinset = new PINSetForm(); pinset.ShowDialog(); } } else { //获取数据库更改列表 List<string> dbList = dbChangeFunc.evolutionList(); //执行数据库更改 dbChangeFunc.evolutionExecute(dbList); return; } } else { //如果不存在数据库更改信息表,则创建 dbChangeFunc.evolTableCreate(bol_dbEvolTable); return; } ////Console.WriteLine("HelloWorld"); ////Console.ReadKey(); //Application.EnableVisualStyles(); //Application.SetCompatibleTextRenderingDefault(false); //Application.Run(new Main()); } catch (Exception ex) { throw new Exception("1" + ex); } //Application.EnableVisualStyles(); //Application.SetCompatibleTextRenderingDefault(false); //Application.Run(new Main()); } } } ```
引用.net中的System.speech包,但是在程序运行时报错。
C# Winform项目中,利用Windows类库,引用.net中的System.speech语音控制包。 在程序运行执行到"SRE.SetInputToDefaultAudioDevice();"报错,提示“值不在预期的范围内。”。 但是将工程中Program.cs文件的Main()方法上面的[STAThread] 这个关键字去掉,程序正常运行。但是将[STAThread]去掉会导致本工程中其它窗体的运行出现异常,有部分功能不能正常运行。 请问各位,在Program.cs文件的Main()方法上面的[STAThread] 这个关键字在不去掉的情况下,能够让程序正常的运行,不报运行的错误。 语音代码如下: private SpeechRecognitionEngine SRE = new SpeechRecognitionEngine(); private void Form1_Load(object sender, EventArgs e) { SRE.SetInputToDefaultAudioDevice(); //在Program.cs文件的Main()方法上面的[STAThread] 这个关键字不去掉的情况下,执行到这报"值不在预期的范围内。"这个错误; GrammarBuilder GB = new GrammarBuilder(); GB.Append("选择"); GB.Append(new Choices(new string[] { "红色", "绿色" })); Grammar G = new Grammar(GB); G.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(G_SpeechRecognized); SRE.LoadGrammar(G); SRE.RecognizeAsync(RecognizeMode.Multiple); } void G_SpeechRecognized(object sender, SpeechRecognizedEventArgs e) { //Text = e.Result.Text; switch (e.Result.Text) { case "选择红色": BackColor = Color.Red; break; case "选择绿色": BackColor = Color.Green; break; } }
c#.net启动动画和更滑皮肤界面不能正常显示
启动动画显示的界面不出现图片 皮肤这块已经引用了IrisSkin4,感觉没啥毛病啊,求大佬帮看 ![皮肤界面](https://img-ask.csdn.net/upload/201812/15/1544878884_79323.png) 皮肤代码 ``` public 皮肤() { InitializeComponent(); } private void pictureBox1_Click(object sender, EventArgs e) { this.skinEngine1.SkinFile = "WarmColor2.ssk"; } private void pictureBox2_Click(object sender, EventArgs e) { this.skinEngine1.SkinFile = "MacOS.ssk"; } private void pictureBox3_Click(object sender, EventArgs e) { this.skinEngine1.SkinFile = "MidsummerColor3.ssk"; } private void pictureBox4_Click(object sender, EventArgs e) { this.skinEngine1.SkinFile = "XPGreen.ssk"; } ``` 启动动画在program.cs中的代码 ``` static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); 启动.ShowSplashScreen(); System.Threading.Thread.Sleep(3000); if (启动.Instance != null) { 启动.Instance.BeginInvoke(new MethodInvoker(启动.Instance.Dispose)); 启动.Instance = null; } Application.Run(new Login()); } } ```
将Main方法上面的[STAThread]去掉,对整个C/S项目有影响吗?
C# Winform项目,在Program.cs文件中,将Main方法上面的[STAThread]去掉了,对这个C/S项目中其他form窗体的运行或其他功能有影响吗? 请各位帮忙看看,对整个工程的正常运行或性能有影响吗?谢谢! 代码如下: ///<summary> ///应用程序的主入口点。 ///</summary> //[STATread] 已注释掉 static void Main() { ... }
C#:未将对象引用设置到对象的实例 (System.NullReferenceException)
![图片说明](https://img-ask.csdn.net/upload/201501/27/1422348462_454037.png) 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; namespace ConsoleExamples { static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main(string[] args) { Console.Write("请输入x和y(例如12,15),然后按回车键:"); string s = Console.ReadLine(); string[] a = s.Split(','); int x = int.Parse(a[0]); int y = int.Parse(a[1]); int z = x * y; Console.WriteLine("x*y={0}", z); Console.WriteLine("请按任意键结束程序。"); Console.ReadKey(); } } }
Java+ArcObject运行出错 initializeVisualBeans
说明:64位 Win7系统,eclipse是32位,JDK 是32位 本人初次接触 ARCObject JDK for Java,对Java有一定的了解,在eclipse中运行自带示例时,出现以下错误,请知道问题的给予指导,谢谢! Could not load native libraries.java.lang.UnsatisfiedLinkError: no ntvinv in java.library.path java.lang.UnsatisfiedLinkError: no ntvinv in java.library.path at java.lang.ClassLoader.loadLibrary(Unknown Source) at java.lang.Runtime.loadLibrary0(Unknown Source) at java.lang.System.loadLibrary(Unknown Source) at com.esri.arcgis.interop.NativeLoader.loadLibrary(Unknown Source) at com.esri.arcgis.system.EngineInitializer.initializeVisualBeans(Unknown Source) at arcgissamples.mapbean.AddLayerFileToMap.main(AddLayerFileToMap.java:322) Exception in thread "ArcGIS VisualBean Mode STA Thread" java.lang.UnsatisfiedLinkError: com.esri.arcgis.interop.NativeObjRef.runMessagePump()V at com.esri.arcgis.interop.NativeObjRef.runMessagePump(Native Method) at com.esri.arcgis.interop.STAThread.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Could not load native libraries. java.lang.UnsatisfiedLinkError: no ntvinv in java.library.path java.lang.UnsatisfiedLinkError: no ntvinv in java.library.path at java.lang.ClassLoader.loadLibrary(Unknown Source) at java.lang.Runtime.loadLibrary0(Unknown Source) at java.lang.System.loadLibrary(Unknown Source) at com.esri.arcgis.interop.NativeLoader.loadLibrary(Unknown Source) at com.esri.arcgis.interop.NativeObjRef.p(Unknown Source) at com.esri.arcgis.interop.Dispatch.a(Unknown Source) at com.esri.arcgis.interop.Dispatch.isNativeMode(Unknown Source) at com.esri.arcgis.interop.Dispatch.createDispatch(Unknown Source) at com.esri.arcgis.interop.Dispatch.<init>(Unknown Source) at com.esri.arcgis.version.IArcGISVersionProxy.<init>(Unknown Source) at com.esri.arcgis.version.VersionManager.<init>(Unknown Source) at com.esri.arcgis.version.VersionManager.<init>(Unknown Source) at com.esri.arcgis.system.EngineInitializer.setVersionAndInitialize(Unknown Source) at com.esri.arcgis.system.EngineInitializer.initializeVisualBeans(Unknown Source) at arcgissamples.mapbean.AddLayerFileToMap.main(AddLayerFileToMap.java:322) java.lang.RuntimeException: Failed to initialize native code invocation: null at com.esri.arcgis.interop.NativeObjRef.p(Unknown Source) at com.esri.arcgis.interop.Dispatch.a(Unknown Source) at com.esri.arcgis.interop.Dispatch.isNativeMode(Unknown Source) at com.esri.arcgis.interop.Dispatch.createDispatch(Unknown Source) at com.esri.arcgis.interop.Dispatch.<init>(Unknown Source) at com.esri.arcgis.version.IArcGISVersionProxy.<init>(Unknown Source) at com.esri.arcgis.version.VersionManager.<init>(Unknown Source) at com.esri.arcgis.version.VersionManager.<init>(Unknown Source) at com.esri.arcgis.system.EngineInitializer.setVersionAndInitialize(Unknown Source) at com.esri.arcgis.system.EngineInitializer.initializeVisualBeans(Unknown Source) at arcgissamples.mapbean.AddLayerFileToMap.main(AddLayerFileToMap.java:322) Error in sample application: Can not use native code: Initialisation failed java.lang.RuntimeException: Can not use native code: Initialisation failed at com.esri.arcgis.interop.NativeObjRef.<init>(Unknown Source) at com.esri.arcgis.interop.Dispatch.createDispatch(Unknown Source) at com.esri.arcgis.interop.Dispatch.<init>(Unknown Source) at com.esri.arcgis.version.IArcGISVersionProxy.<init>(Unknown Source) at com.esri.arcgis.version.VersionManager.<init>(Unknown Source) at com.esri.arcgis.version.VersionManager.<init>(Unknown Source) at com.esri.arcgis.system.EngineInitializer.setVersionAndInitialize(Unknown Source) at com.esri.arcgis.system.EngineInitializer.initializeVisualBeans(Unknown Source) at arcgissamples.mapbean.AddLayerFileToMap.main(AddLayerFileToMap.java:322) Exiting ... 请各位知道的兄弟指点。
C#程序请问如何隐藏一个控制台窗口
一个带Windows窗体的C#程序,用csc命令编译成exe可执行文件后,执行时总带有一个控制台窗口,请问如何在程序运行时,怎么能不出现那个黑呼呼的控制台窗口?应该如何修改下面的程序呢?谢谢大家的帮助,_桂林网友提问。 程序是这样的: using System; using System.Drawing; using System.Windows.Forms; namespace Ganxu1 { public class SimpleForm : Form { public SimpleForm() { InitializeComponent(); } private System.ComponentModel.IContainer components = null; protected override void Dispose(bool disposing) { if (disposing) { if (components != null) { components.Dispose(); } } base.Dispose(disposing); } private void InitializeComponent() { this.SuspendLayout(); this.AutoScaleDimensions = new System.Drawing.SizeF(6F,12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(292, 273); this.Name = "SimpleForm"; this.Text = "SimpleForm"; this.ResumeLayout(false); } [STAThread] private static void Main(string[] args) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new SimpleForm()); } } }
C#winfrom,Program中 非阻塞弹出 窗口
代码如下: static class Program { [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); //xxxx操作 if (true) { Application.Run(new Form1()); } //xxxx操作 } } 现在有个问题就是 Application.Run(new Form1()); 会阻塞进程,后面的代码运行不了。也试过用多线程,这样会报错,急死了,求大神帮忙
C#网络通信程序设计基于ICMP的活动主机探测程序设计如何在界面上显示PING的统计结果(成功,失败次数)
C#网络通信程序设计基于ICMP的活动主机探测程序设计如何在界面上显示PING的统计结果(成功,失败次数) 用的是visual studio 2010 下面是窗体程序 ![图片说明](https://img-ask.csdn.net/upload/201903/31/1554009839_587560.png) 下面是代码 program ``` using System; using System.Collections.Generic; using System.Windows.Forms; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Net; using System.Net.Sockets; namespace pingProgram { public class IcmPacket { private Byte my_type; private Byte my_subCode; private UInt16 my_checkSum; private UInt16 my_identifier; private UInt16 my_sequenceNumber; private Byte[] my_data; public IcmPacket(Byte type, Byte subCode, UInt16 checkSum, UInt16 identifier, UInt16 sequenceNumber, int dataSize) { my_type = type; my_subCode = subCode; my_checkSum = checkSum; my_identifier = identifier; my_sequenceNumber = sequenceNumber; my_data = new Byte[dataSize]; for (int i = 0; i < dataSize; i++) { my_data[i] = (byte)'k'; } } public UInt16 CheckSum { get { return my_checkSum; } set { my_checkSum=value; } } public int CountByte(Byte[] buffer) { Byte[] b_type = new Byte[1] { my_type }; Byte[] b_code = new Byte[1] { my_subCode }; Byte[] b_cksum = BitConverter.GetBytes(my_checkSum); Byte[] b_id = BitConverter.GetBytes(my_identifier); Byte[] b_seq = BitConverter.GetBytes(my_sequenceNumber); int i = 0; Array.Copy(b_type, 0, buffer, i, b_type.Length); i += b_type.Length; Array.Copy(b_code, 0, buffer, i, b_code.Length); i += b_code.Length; Array.Copy(b_cksum, 0, buffer, i, b_cksum.Length); i += b_cksum.Length; Array.Copy(b_id, 0, buffer, i, b_id.Length); i += b_id.Length; Array.Copy(b_seq, 0, buffer, i, b_seq.Length); i += b_seq.Length; Array.Copy(my_data, 0, buffer, i, my_data.Length); i += my_data.Length; return i; } public static UInt16 SumOfCheck(UInt16[] buffer) { int cksum = 0; for (int i = 0; i < buffer.Length; i++) cksum += (int)buffer[i]; cksum = (cksum >> 16) + (cksum & 0xffff); cksum += (cksum >> 16); return (UInt16)(~cksum); } } static class Program { [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } } ``` form1 ``` using System; using System.IO; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Net; using System.Net.Sockets; namespace pingProgram { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnPing_Click(object sender, EventArgs e) { listBox1.Items.Clear(); if (textBox1.Text == "") { MessageBox.Show("IP地址不能为空!"); return; } string Hostclient = textBox1.Text; Socket Socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Icmp); Socket.ReceiveTimeout = 1000; IPHostEntry Hostinfo; try { Hostinfo = Dns.GetHostEntry(Hostclient); } catch (Exception) { listBox1.Items.Add("无法辨识主机!"); return; } EndPoint Hostpoint = (EndPoint)new IPEndPoint(Hostinfo.AddressList[0], 0); IPHostEntry Clientinfo; Clientinfo = Dns.GetHostEntry(Hostclient); EndPoint Clientpoint = (EndPoint)new IPEndPoint(Clientinfo.AddressList[0], 0); int DataSize = 4; int PacketSize = DataSize + 8; const int Icmp_echo = 8; IcmPacket Packet = new IcmPacket(Icmp_echo, 0, 0, 45, 0, DataSize); Byte[] Buffer = new Byte[PacketSize]; int index = Packet.CountByte(Buffer); if (index != PacketSize) { listBox1.Items.Add("报文出现错误!"); return; } int Cksum_buffer_length = (int)Math.Ceiling(((Double)index)/2); UInt16[] Cksum_buffer = new UInt16[Cksum_buffer_length]; int Icmp_header_buffer_index = 0; for (int I = 0; I < Cksum_buffer_length; I++) { Cksum_buffer[I] = BitConverter.ToUInt16(Buffer, Icmp_header_buffer_index); Icmp_header_buffer_index += 2; } Packet.CheckSum = IcmPacket.SumOfCheck(Cksum_buffer); Byte[] SendData = new Byte[PacketSize]; index = Packet.CountByte(SendData); if (index != PacketSize) { listBox1.Items.Add("报文出现错误!"); return; } int pingNum=4; for (int i = 0; i < 4; i++) { int Nbytes = 0; int startTime = Environment.TickCount; try { Nbytes = Socket.SendTo(SendData, PacketSize, SocketFlags.None, Hostpoint); } catch (Exception) { listBox1.Items.Add("无法传送报文!"); return; } Byte[] ReceiveData = new Byte[256]; Nbytes = 0; int Timeconsume = 0; while (true) { try { Nbytes = Socket.ReceiveFrom(ReceiveData, 256, SocketFlags.None, ref Clientpoint); } catch (Exception) { listBox1.Items.Add("超时无响应!"); break; } if (Nbytes > 0) { Timeconsume = System.Environment.TickCount - startTime; if (Timeconsume < 1) listBox1.Items.Add("reply from: " + Hostinfo.AddressList[0].ToString() + " Send: " + (PacketSize + 20).ToString() + " time<1ms " + "bytes Received " + Nbytes.ToString()); else listBox1.Items.Add("reply from: " + Hostinfo.AddressList[0].ToString() + " Send: " + (PacketSize + 20).ToString() + " In " + Timeconsume.ToString() + " ms;bytes Received " + Nbytes.ToString()); break; } } } Socket.Close(); } private void btnSave_Click(object sender, EventArgs e) { SaveFileDialog savedlg = new SaveFileDialog(); savedlg.Filter = "文本文件|*.txt"; savedlg.Title = "保存记录"; savedlg.ShowDialog(); if (savedlg.FileName != "") { string localFilePath; localFilePath = ""; localFilePath = savedlg.FileName.ToString(); string str = ""; for (int j = 0; j < listBox1.Items.Count; j++) { str += listBox1.Items[j].ToString() + "\r\n"; } FileStream fs = new FileStream(localFilePath, FileMode.OpenOrCreate); StreamWriter sw = new StreamWriter(fs); sw.Write(str); sw.Flush(); sw.Close(); fs.Close(); MessageBox.Show(" PING结果保存完毕。 ","PING程序设计",MessageBoxButtons.OK); } } } } ```
为什么进不到项目里面啊?入口进不去!
using System; using System.Collections.Generic; using System.Windows.Forms; using WF_SysApplication; using AutoUpdater; using KnightsWarriorAutoupdater; using System.Net; using System.Xml; using System.Diagnostics; namespace WF.MainMap { static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main(string [] args) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); #region check and download new version program bool bHasError = false; try { IAutoUpdater autoUpdater = new KnightsWarriorAutoupdater.AutoUpdater(args); if (autoUpdater.NeedUpdate()) { Application.Exit(); Process proc = new Process(); proc.StartInfo.UseShellExecute = true;//是否使用操作系统外壳程序启动进程 if (args != null && args.Length > 0) proc.StartInfo.Arguments = args[0]; proc.StartInfo.WorkingDirectory = AppDomain.CurrentDomain.BaseDirectory;//启动进程的初始目录 proc.StartInfo.FileName = "KnightsWarrior.exe"; proc.WaitForExit(100); proc.Start(); return; } } catch (WebException exp) { MessageBox.Show("服务器连接失败"); bHasError = true; } catch (XmlException exp) { bHasError = true; MessageBox.Show("下载更新文件错误"); } catch (NotSupportedException exp) { bHasError = true; MessageBox.Show("升级文件配置错误"); } catch (ArgumentException exp) { bHasError = true; MessageBox.Show("下载升级文件错误"); } catch (Exception exp) { bHasError = true; MessageBox.Show("更新过程中出现错误"); } finally { // //if (bHasError == true) // //{ // // try // // { // // autoUpdater.RollBack(); // // } // // catch (Exception) // // { // // //Log the message to your file or database // // } // //} // ////OperProcess op = new OperProcess(); // //启动进程 // //op.StartProcess(); } #endregion //StaticSystemUIClass.MsgControl.ShowInfoDialog(StaticSystemUIClass.SysConfigXmlControl.SysPath); if (args == null || args.Length == 0) { args = new string[1]; args[0] = "数据管理子系统.wfs"; } if (args == null || args.Length == 0) { MessageBox.Show("未指定子系统类型"); return; } DevExpress.UserSkins.BonusSkins.Register(); DevExpress.Skins.SkinManager.EnableFormSkins(); DevExpress.Skins.SkinManager.EnableMdiFormSkins(); Application.Run(new frmMain()); (未将对象引用设置到对象的实例) } } } 还有那个查看详细信息的异常快照怎么看啊?
多个包含静态变量类的加载顺序???
有三个类,SingletonCounter、Test、Singleton,里面都包含了静态变量,SingletonCounter、Test结构差不多,Singleton包含了静态构造函数,静态属性等,将三个类的行都打上断点(需要断点的行有注释——加断点调试),当调试的时候,为什么总是最后执行到SingletonCounter的静态变量instance上??? 测试了很多,和Singleton类的静态构造函数有关,望指点一二,谢谢!!! using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace _04_Singleton3 { class Program { [STAThread] static void Main() {//加断点调试 var temp = Singleton.Instance; var str = Test.str; for (int i = 0; i < 20; i++) { Console.WriteLine("Next singleton value: {0}", SingletonCounter.Instance.NextValue()); } Console.ReadKey(); } } //1、sealed 类 sealed class SingletonCounter { private int Count = 0;//加断点调试 //2、私有构造函数 private SingletonCounter() {//加断点调试 } //3、公开静态实例对象 public static readonly SingletonCounter Instance = new SingletonCounter();//加断点调试 public long NextValue() { return ++Count; } } sealed class Test { private int count = 0;//加断点调试 public static string str = "aaa";//加断点调试 public static readonly Test Instance = new Test();//加断点调试 } sealed class Singleton { private static readonly Singleton instance = new Singleton();//加断点调试 static Singleton() {//加断点调试 } private Singleton() {//加断点调试 } public static Singleton Instance//加断点调试 { get { return instance; } } /* * * * * * */ } } ``` ```
vs10发布 winform后运行不了
using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; using System.IO; using System.Reflection; namespace VOCsample { static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { try { BindExceptionHandler();//绑定程序中的异常处理 //以下是创建数据库、程序入口等代码 Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new VOCsample()); } catch (Exception ex) { } } /// <summary> /// 绑定程序中的异常处理 /// </summary> private static void BindExceptionHandler() { //设置应用程序处理异常方式:ThreadException处理 Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException); //处理UI线程异常 Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException); //处理未捕获的异常 AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); } /// <summary> /// 处理UI线程异常 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e) { //LogHelper.Instance.ErrorLog(null, e.Exception as Exception); LogHelper.Instance.WriteLog(e); } /// <summary> /// 处理未捕获的异常 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { //LogHelper.ErrorLog(null, e.ExceptionObject as Exception); LogHelper.Instance.WriteLog(e); } } } 我在环境上可以正常运行。但是在本机发布之后,运行不了。双击没反应。求大神帮忙。而且我的错误日志也没有错误提示。现在是不知道怎么去找到问题。
C#如何获取计算器按钮1的句柄,并进行点击操作,请教一下 谢谢
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; using System.Diagnostics; using System.Threading.Tasks; using System.Threading; namespace ConsoleApplication1 { class Program { [DllImport("user32.dll", EntryPoint = "FindWindow", CharSet = CharSet.Auto)] static extern IntPtr FindWindow(string lpClassName, string lpWindowName); [DllImport("user32.dll", EntryPoint = "FindWindowEx", CharSet = CharSet.Auto)] extern static IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow); [DllImport("User32.dll", EntryPoint = "SendMessage")] private static extern int SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, string lParam); [STAThread] static void Main(string[] args) { string path = "C:\\WINDOWS\\system32\\calc.exe"; Process p = Process.Start(path); if (p == null) Console.WriteLine("Warning:process may already exist"); Console.WriteLine("Finding main window handle"); IntPtr mainWindows = FindMainWindowHandle("计算器", 100, 25); Console.WriteLine("Handle to main window is " + mainWindows); //有名字控件句柄 Console.WriteLine("Findding handle to button1"); IntPtr butt = FindWindowEx(mainWindows, IntPtr.Zero, null, "Backspace");//这里的1是,计算器上名字为1的按钮 if (butt == IntPtr.Zero) throw new Exception("Unable to find button1"); else Console.WriteLine("Handle to button1 is " + butt); SendMessage(mainWindows, 0X101, butt, null); //没有名字或者重名控件 //Console.WriteLine("Findding handle to listbox1"); //IntPtr lb = FindWindowByIndex(mwh, 3); //if (lb == IntPtr.Zero) // throw new Exception("Unable to find listbox1"); //else // Console.WriteLine("Handle to listbox1 is " + lb); } //通过索引查找相应控件句柄 static IntPtr FindWindowByIndex(IntPtr hwndParent, int index) { if (index == 0) { return hwndParent; } else { int ct = 0; IntPtr result = IntPtr.Zero; do { result = FindWindowEx(hwndParent, result, null, null); if (result != IntPtr.Zero) { ++ct; } } while (ct < index && result != IntPtr.Zero); return result; } } //获得待测程序主窗体句柄 private static IntPtr FindMainWindowHandle(string caption, int delay, int maxTries) { IntPtr mwh = IntPtr.Zero; bool formFound = false; int attempts = 0; while (!formFound && attempts < maxTries) { if (mwh == IntPtr.Zero) { Console.WriteLine("Form not yet found"); Thread.Sleep(delay); ++attempts; mwh = FindWindow(null, caption); } else { Console.WriteLine("Form has been found"); formFound = true; } } if (mwh == IntPtr.Zero) throw new Exception("Could not find main window"); else return mwh; } } }
跪求大佬帮忙修改,请问一下转账时objA.transfer为什么不能赋值给objB.count?
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp2 { class Depositcard //储蓄卡 { public int balance=10000; //余额 public int count; public void Repayment(int count1) { count1=balance - count; if (count1<0) { Console.WriteLine("转账失败,储蓄卡还剩:" + balance); } else { Console.WriteLine("转账成功,储蓄卡还剩:" + balance); } } } class Creditcard //信用卡 { public int sum; //余额 public int saveordraw; //存钱或取钱 public int transfer; //转账 public int balance; //储蓄卡转账 public Creditcard(int num) { sum = num; Console.WriteLine("信用卡还有余额" + sum, "元"); } public void Save_money() //存钱 { string a = Console.ReadLine(); saveordraw = int.Parse(a); sum += saveordraw; Console.WriteLine("信用卡还有余额" + sum, "元"); } public void Draw_money() //取钱 { string b = Console.ReadLine(); saveordraw = int.Parse(b); sum -= saveordraw; if(sum<0) Console.WriteLine("余额不够,取款失败!"); else Console.WriteLine("取款成功,信用卡还有余额" + sum, "元"); } public void Transfer_money() { string c = Console.ReadLine(); transfer = int.Parse(c); Console.WriteLine(transfer); if (balance<transfer) Console.WriteLine("储蓄卡余额不够,转账失败!"); else { sum += transfer; Console.WriteLine("转账成功,信用卡还有余额" + sum, "元"); } } public string count3; public void Show() { Console.WriteLine("1.存款"); Console.WriteLine("2.取款"); Console.WriteLine("3.转账"); Console.WriteLine("请输入需要的操作"); } public void Choose_methods(int a) { switch (count3) { case "1": Console.WriteLine("请输入存款金额"); Save_money(); break; case "2": Console.WriteLine("请输入取款金额"); Draw_money(); break; case "3": Console.WriteLine("请输入转账金额"); Transfer_money(); break; } } } class Delegate { public delegate void Mydelegate(int num); public event Mydelegate Repayment; public void Events() { int money = 0; Repayment(money); } } class Program { [STAThread] static void Main(string[] args) { int sum = -50000; //此处为欠款 Creditcard objA = new Creditcard(sum); Depositcard objB = new Depositcard(); Delegate objC = new Delegate(); objA.balance = objB.balance; objA.Show(); objA.count3 = Console.ReadLine(); objC.Repayment += new Delegate.Mydelegate(objA.Choose_methods); objB.count = objA.transfer; if (objA.count3 == "3") { objC.Repayment += new Delegate.Mydelegate(objB.Repayment); } Console.WriteLine(objB.count); //Console.WriteLine(objA.transfer); //Console.WriteLine(objA.balance); objC.Events(); Console.ReadLine(); } } }
关于Mutex限制应用程序重复启动的问题
大伙帮忙看看以下代码,整个程序按Release编译通过,但点击运行bin\Release目录下的应用程序EXE文件,居然可以连续启动3个,第4个开始弹出消息“本程序已经启动了,不能再重复运行!”,啥原因?困惑中。。。 ``` static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { bool flag = false; Mutex mutex = new Mutex(true, System.Diagnostics.Process.GetCurrentProcess().ProcessName, out flag); if (flag) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new FormStockTrading()); } else { MessageBox.Show("本程序已经启动了,不能再重复运行!"); Environment.Exit(1); } } } ```
c#主接入口修改Form窗口参数(Visible)
新学c#小白,制作一个软件娱乐娱乐。主接口处验证多开后想让程序从托盘处弹出,需要修改Form窗口visible属性。可是怎么写也报错。求助~~ ``` namespace 定时关机小程序 { class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] public void Main() { Process instance = RunningInstance(); if (instance == null) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } else { HandleRunningInstance(instance); } } public Process RunningInstance() { Process current = Process.GetCurrentProcess(); Process[] processes = Process.GetProcessesByName(current.ProcessName); //遍历正在有相同名字运行的进程 foreach (Process process in processes) { //忽略现有的进程 if (process.Id != current.Id) { //确保进程从EXE文件运行 if (process.MainModule.FileName == current.MainModule.FileName) { // 返回另一个进程实例 return process; } } } //没有其它的进程,返回Null return null; } public void HandleRunningInstance(Process instance) { IntPtr mainFormHandle = instance.MainWindowHandle; if (mainFormHandle != IntPtr.Zero) { ShowWindowAsync(mainFormHandle, 1); SetForegroundWindow(mainFormHandle); //想写在这里修改窗口visible属性~~~~~!!!!!!! } } [DllImport("User32.dll ")] private static extern bool ShowWindowAsync(IntPtr hWnd, int cmdShow); [DllImport("User32.dll ")] private static extern bool SetForegroundWindow(IntPtr hWnd); private const int WS_SHOWNORMAL = 1; } } ```
相见恨晚的超实用网站
搞学习 知乎:www.zhihu.com 简答题:http://www.jiandati.com/ 网易公开课:https://open.163.com/ted/ 网易云课堂:https://study.163.com/ 中国大学MOOC:www.icourse163.org 网易云课堂:study.163.com 哔哩哔哩弹幕网:www.bilibili.com 我要自学网:www.51zxw
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
引言 本文主要是记录一下面试字节跳动的经历。 三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时
开源一个功能完整的SpringBoot项目框架
福利来了,给大家带来一个福利。 最近想了解一下有关Spring Boot的开源项目,看了很多开源的框架,大多是一些demo或者是一个未成形的项目,基本功能都不完整,尤其是用户权限和菜单方面几乎没有完整的。 想到我之前做的框架,里面通用模块有:用户模块,权限模块,菜单模块,功能模块也齐全了,每一个功能都是完整的。 打算把这个框架分享出来,供大家使用和学习。 为什么用框架? 框架可以学习整体
源码阅读(19):Java中主要的Map结构——HashMap容器(下1)
(接上文《源码阅读(18):Java中主要的Map结构——HashMap容器(中)》) 3.4.4、HashMap添加K-V键值对(红黑树方式) 上文我们介绍了在HashMap中table数组的某个索引位上,基于单向链表添加新的K-V键值对对象(HashMap.Node&lt;K, V&gt;类的实例),但是我们同时知道在某些的场景下,HashMap中table数据的某个索引位上,数据是按照红黑树
c++制作的植物大战僵尸,开源,一代二代结合游戏
    此游戏全部由本人自己制作完成。游戏大部分的素材来源于原版游戏素材,少部分搜集于网络,以及自己制作。 此游戏为同人游戏而且仅供学习交流使用,任何人未经授权,不得对本游戏进行更改、盗用等,否则后果自负。 目前有六种僵尸和六种植物,植物和僵尸的动画都是本人做的。qq:2117610943 开源代码下载 提取码:3vzm 点击下载--&gt; 11月28日 新增四种植物 统一植物画风,全部修
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
Python——画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树喔)
最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成喔~) one 樱花树 动态生成樱花 效果图(这个是动态的): 实现代码 import turtle as T import random import time # 画樱花的躯干(60,t) def Tree(branch
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
Python 基础(一):入门必备知识
目录1 标识符2 关键字3 引号4 编码5 输入输出6 缩进7 多行8 注释9 数据类型10 运算符10.1 常用运算符10.2 运算符优先级 1 标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。 以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供
深度学习图像算法在内容安全领域的应用
互联网给人们生活带来便利的同时也隐含了大量不良信息,防范互联网平台有害内容传播引起了多方面的高度关注。本次演讲从技术层面分享网易易盾在内容安全领域的算法实践经验,包括深度学习图
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
写在前面: 我是 扬帆向海,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。技术是开源的、知识是共享的。 这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。 用知识改变命运,让我们的家人过上更好的生活。 目录一、杨辉三角的介绍二、杨辉三角的算法思想三、代码实现1.第一种写法2.第二种写法 一、杨辉三角的介绍 百度
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
Python 编程实用技巧
Python是一门很灵活的语言,也有很多实用的方法,有时候实现一个功能可以用多种方法实现,我这里总结了一些常用的方法,并会持续更新。
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,
程序员:我终于知道post和get的区别
IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了。 码农:你月薪三万了? 程序员:嗯。 码农:你是怎么做到的? 程序员:
"狗屁不通文章生成器"登顶GitHub热榜,分分钟写出万字形式主义大作
前言 GitHub 被誉为全球最大的同性交友网站,……,陪伴我们已经走过 10+ 年时间,它托管了大量的软件代码,同时也承载了程序员无尽的欢乐。 上周给大家分享了一篇10个让你笑的合不拢嘴的Github项目,而且还拿了7万+个Star哦,有兴趣的朋友,可以看看, 印象最深刻的是 “ 呼吸不止,码字不停 ”: 老实交代,你是不是经常准备写个技术博客,打开word后瞬间灵感便秘,码不出字? 有什么
推荐几款比较实用的工具,网站
1.盘百度PanDownload 这个云盘工具是免费的,可以进行资源搜索,提速(偶尔会抽风????) 不要去某站买付费的???? PanDownload下载地址 2.BeJSON 这是一款拥有各种在线工具的网站,推荐它的主要原因是网站简洁,功能齐全,广告相比其他广告好太多了 bejson网站 3.二维码美化 这个网站的二维码美化很好看,网站界面也很...
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU
相关热词 c#选择结构应用基本算法 c# 收到udp包后回包 c#oracle 头文件 c# 序列化对象 自定义 c# tcp 心跳 c# ice连接服务端 c# md5 解密 c# 文字导航控件 c#注册dll文件 c#安装.net
立即提问