Recently I needed to reproduce an Entity Framework deadlock issue. The test needed to run in NUnit, and involved firing off two separate threads. The trouble is that in NUnit, exceptions in threads terminate the parent thread without failing the test.
For example, here's a test that starts two threads: the first thread simply logs to the console, while the other thread turfs an exception. What I expected was that this test should fail. However, the test actually passes.
Peter Provost posted an article that describes how to make this test fail. It works by wrapping the thread code in a CrossThreadTestRunner class, that catches exceptions inside the thread, and rethrows the exception outside the thread via a Thread.Join call. Peter also posted another article describing how to use the CrossThreadTestRunner class.
Here's a partial code listing of the CrossThreadTestRunner class
Peter's solution works if you are only using a single thread per test. If you wanted to run multiple threads in a test, some tweaks are required to the CrossThreadTestRunner class, since the CrossThreadTestRunner.Run method starts the thread, then does a Thread.Join to wait for the thread to complete. The problem with this is that it prevents threads from running in parallel, since Thread.Join blocks the calling thread until the target thread exits.
The change to allow for parallel thread execution is to split up the run method into a Start and a Join method, to mirror the corresponding methods on the Thread class. Here's the modified listing.
Using the modified version of the CrossThreadTaskRunner, it's now possible to make the original test fail.
One final tweak to turn this into a green test, is to add the ExpectedExceptionAttribute to the test method, to indicate that the test should fail with the given exception.
The final test looks something like the following
Here's the full listing of the modified version of the CrossThreadTestRunner class.
The code for this article is on GitHub.
For example, here's a test that starts two threads: the first thread simply logs to the console, while the other thread turfs an exception. What I expected was that this test should fail. However, the test actually passes.
readonly ThreadStart[] delegates = { () => { Console.WriteLine("Nothing to see here"); }, () => { throw new InvalidOperationException("Blow up"); } }; [Test] public void SimpleMultiThreading() { var threads = delegates.Select(d => new Thread(d)).ToList(); foreach (var t in threads) { t.Start(); } foreach (var t in threads) { t.Join(); } }
Peter Provost posted an article that describes how to make this test fail. It works by wrapping the thread code in a CrossThreadTestRunner class, that catches exceptions inside the thread, and rethrows the exception outside the thread via a Thread.Join call. Peter also posted another article describing how to use the CrossThreadTestRunner class.
Here's a partial code listing of the CrossThreadTestRunner class
public class CrossThreadTestRunner { private ThreadStart userDelegate; private Exception lastException; public CrossThreadTestRunner(ThreadStart userDelegate) { this.userDelegate = userDelegate; } public void Run() { Thread t = new Thread(new ThreadStart(MultiThreadedWorker)); t.Start(); t.Join(); if (lastException != null) { ThrowExceptionPreservingStack(lastException); } } private void MultiThreadedWorker() { try { userDelegate.Invoke(); } catch (Exception e) { lastException = e; } } }
Peter's solution works if you are only using a single thread per test. If you wanted to run multiple threads in a test, some tweaks are required to the CrossThreadTestRunner class, since the CrossThreadTestRunner.Run method starts the thread, then does a Thread.Join to wait for the thread to complete. The problem with this is that it prevents threads from running in parallel, since Thread.Join blocks the calling thread until the target thread exits.
The change to allow for parallel thread execution is to split up the run method into a Start and a Join method, to mirror the corresponding methods on the Thread class. Here's the modified listing.
public class CrossThreadTestRunner { private ThreadStart userDelegate; private Exception lastException; private Thread thread; public CrossThreadTestRunner(ThreadStart userDelegate) { this.userDelegate = userDelegate; this.thread = new Thread(new ThreadStart(MultiThreadedWorker)); } public void Start() { thread.Start(); } public void Join() { thread.Join(); if (lastException != null) { ThrowExceptionPreservingStack(lastException); } } private void MultiThreadedWorker() { try { userDelegate.Invoke(); } catch (Exception e) { lastException = e; } } }
Using the modified version of the CrossThreadTaskRunner, it's now possible to make the original test fail.
readonly ThreadStart[] delegates = { () => { Console.WriteLine("Nothing to see here"); }, () => { throw new InvalidOperationException("Blow up"); } }; [Test] public void BetterMultiThreading() { var threads = delegates.Select(d => new CrossThreadTestRunner(d)).ToList(); foreach (var t in threads) { t.Start(); } foreach (var t in threads) { t.Join(); } }
One final tweak to turn this into a green test, is to add the ExpectedExceptionAttribute to the test method, to indicate that the test should fail with the given exception.
The final test looks something like the following
readonly ThreadStart[] delegates = { () => { Console.WriteLine("Nothing to see here"); }, () => { throw new InvalidOperationException("Blow up"); } }; [Test] [ExpectedException(typeof(InvalidOperationException))] public void BetterMultiThreading() { var threads = delegates.Select(d => new CrossThreadTestRunner(d)).ToList(); foreach (var t in threads) { t.Start(); } foreach (var t in threads) { t.Join(); } }
Here's the full listing of the modified version of the CrossThreadTestRunner class.
class CrossThreadTestRunner { private Exception lastException; private readonly Thread thread; private readonly ThreadStart start; private const string RemoteStackTraceFieldName = "_remoteStackTraceString"; private static readonly FieldInfo RemoteStackTraceField = typeof(Exception).GetField(RemoteStackTraceFieldName, BindingFlags.Instance | BindingFlags.NonPublic); public CrossThreadTestRunner(ThreadStart start) { this.start = start; this.thread = new Thread(Run); this.thread.SetApartmentState(ApartmentState.STA); } public void Start() { lastException = null; thread.Start(); } public void Join() { thread.Join(); if (lastException != null) { ThrowExceptionPreservingStack(lastException); } } private void Run() { try { start.Invoke(); } catch (Exception e) { lastException = e; } } [ReflectionPermission(SecurityAction.Demand)] private static void ThrowExceptionPreservingStack(Exception exception) { if (RemoteStackTraceField != null) { RemoteStackTraceField.SetValue(exception, exception.StackTrace + Environment.NewLine); } throw exception; } }
The code for this article is on GitHub.
Needed to compose you a very little word to thank you yet again regarding the nice suggestions you’ve contributed here.
ReplyDeleteHadoop Training in Chennai
After reading this web site I am very satisfied simply because this site is providing comprehensive knowledge for you to audience. Thank you to the perform as well as discuss anything incredibly important in my opinion. We loose time waiting for your next article writing in addition to I beg one to get back to pay a visit to our website in
ReplyDeletejava training in omr
java training in annanagar | java training in chennai
java training in marathahalli | java training in btm layout
java training in rajaji nagar | java training in jayanagar
Really great post, Thank you for sharing This knowledge.Excellently written article, if only all bloggers offered the same level of content as you, the internet would be a much better place. Please keep it up!
ReplyDeletepython training in omr
python training in annanagar | python training in chennai
python training in marathahalli | python training in btm layout
python training in rajaji nagar | python training in jayanagar
Have you been thinking about the power sources and the tiles whom use blocks I wanted to thank you for this great read!! I definitely enjoyed every little bit of it and I have you bookmarked to check out the new stuff you post
ReplyDeleteData Science Training in Chennai
Data science training in bangalore
Data science online training
Data science training in pune
Data science training in kalyan nagar
selenium training in chennai
Wow it is really wonderful and awesome thus it is very much useful for me to understand many concepts and helped me a lot. it is really explainable very well and i got more information from your blog.
ReplyDeleterpa training in Chennai | rpa training in velachery
rpa training in tambaram | rpa training in sholinganallur
rpa training in Chennai | rpa training in pune
rpa online training | rpa training in bangalore
Thanks for your informative article, Your post helped me to understand the future and career prospects & Keep on updating your blog with such awesome article.
ReplyDeletepython training in annanagar
python training in chennai
python training in chennai
python training in Bangalore
Your good knowledge and kindness in playing with all the pieces were very useful. I don’t know what I would have done if I had not encountered such a step like this.
ReplyDeleteDevops training in sholinganallur
Devops training in velachery
Hmm, it seems like your site ate my first comment (it was extremely long) so I guess I’ll just sum it up what I had written and say, I’m thoroughly enjoying your blog. I as well as an aspiring blog writer, but I’m still new to the whole thing. Do you have any recommendations for newbie blog writers? I’d appreciate it.
ReplyDeleteBest Selenium Training in Chennai | Selenium Training Institute in Chennai | Besant Technologies
Selenium Training in Bangalore | Best Selenium Training in Bangalore
AWS Training in Bangalore | Amazon Web Services Training in Bangalore
Great article with an excellent idea!Thank you for such a valuable article. I really appreciate for this great information .
ReplyDeletePHP Training in Chennai
DOT NET Training in Chennai
Big Data Training in Chennai
Hadoop Training in Chennai
Android Training in Chennai
Selenium Training in Chennai
Digital Marketing Course in Chennai
JAVA Training in Chennai
Big Data Hadoop Training in Chennai
Extra-ordinary post. Looking for an information like this for a long time. Thanks for Posting.
ReplyDeletePega training in chennai
Pega course in chennai
Primavera Training in Chennai
Primavera Course in Chennai
IELTS Coaching in Chennai
IELTS Training in Chennai
Informative Blog, Thank you to share this
ReplyDeleteRegards,
PHP Training in Chennai | PHP Course in Chennai
Thanks to the admin you have spend a lot for this blog I gained some useful info for you. Keep doing.
ReplyDeleteSEO Training in Chennai
SEO Course in Chennai
AWS Training in Chennai
Data Science Course in Chennai
Digital Marketing Course in Chennai
SEO Training in Anna Nagar
SEO Training in Adyar
Nice information, valuable and excellent design, as share good stuff with good ideas and concepts, lots of great information and inspiration, both of which I need, thanks to offer such a helpful information here.
ReplyDeletedevops online training
aws online training
data science with python online training
data science online training
rpa online training
Well you use a hard way for publishing, you could find much easier one!
ReplyDeleteMicrosoft Azure online training
Selenium online training
Java online training
uipath online training
Python online training
Really impressive post. I read it whole and going to share it with my social circules. I enjoyed your article and planning to rewrite it on my own blog.
ReplyDeletedata science course malaysia
such a nice post thanks for sharing this with us really so impressible and attractive post
ReplyDeleteare you searching for a caterers service provider in Delhi or near you then contact us and get all info and also get best offers and off on pre booking
caterers services sector 29 gurgaon
caterers services in west Delhi
event organizers rajouri garden
wedding planners in Punjabi bagh
party organizers in west Delhi
party organizers Dlf -phase-1
wedding planners Dlf phase-1
wedding planners Dlf phase-2
event organizers Dlf phase-3
caterers services Dlf phase-4
caterers services Dlf phase-5
Alleyaaircool is the one of the best home appliances repair canter in all over Delhi we deals in repairing window ac, Split ac , fridge , microwave, washing machine, water cooler, RO and more other home appliances in cheap rates
ReplyDeleteWindow AC Repair in vaishali
Split AC Repair in indirapuram
Fridge Repair in kaushambi
Microwave Repair in patparganj
Washing Machine Repair in vasundhara
Water Cooler Repair in indirapuram
RO Service AMC in vasundhara
Any Cooling System in vaishali
Window AC Repair in indirapuram
Are you looking for a maid for your home to care your baby,patient care taker, cook service or a japa maid for your pregnent wife we are allso providing maid to take care of your old parents.we are the best and cheapest service provider in delhi for more info visit our site and get all info.
ReplyDeletemaid service provider in South Delhi
maid service provider in Dwarka
maid service provider in Gurgaon
maid service provider in Paschim Vihar
cook service provider in Paschim Vihar
cook service provider in Dwarka
cook service provider in south Delhi
baby care service provider in Delhi NCR
baby care service provider in Gurgaon
baby care service provider in Dwarka
baby service provider in south Delhi
servant service provider in Delhi NCR
servant service provider in Paschim Vihar
servant Service provider in South Delhi
japa maid service in Paschim Vihar
japa maid service in Delhi NCR
japa maid service in Dwarka
japa maid service in south Delhi
patient care service in Paschim Vihar
patient care service in Delhi NCR
patient care service in Dwarka
Patient care service in south Delhi
Home Mart is a site about Home Improvement, Furniture, Home Appliances and many more.
ReplyDeleteCheck out the best
furniture sale
Dog Cages
bedroom furniture nz
entertainment unit
In This Summers get the best designer umbrellas for you or for your family members we allso deals in wedding umbrellas and in advertising umbrellas For more info visit links given bellow
ReplyDeleteUMBRELLA WHOLESALERS IN DELHI
FANCY UMBRELLA DEALERS
CORPORATE UMBRELLA MANUFACTURER
BEST CUSTOMIZED UMBRELLA
FOLDING UMBRELLA DISTRIBUTORS
DESIGNER UMBRELLA
GOLF UMBRELLA DEALERS/MANUFACTURERS
TOP MENS UMBRELLA
LADIES UMBRELLA DEALERS
WEDDING UMBRELLA DEALERS
BEST QUALITY UMBRELLA
BIG UMBRELLA
Top Umbrella Manufacturers in India
Umbrella Manufacturers in Mumbai
Umbrella Manufacturers in Delhi
Garden Umbrella Dealers
Garden Umbrella Manufacturers
PROMOTIONAL UMBRELLA DEALERS IN DELHI/MUMBAI
PROMOTIONAL UMBRELLA MANUFACTURERS IN DELHI / MUMBAI
ADVERTISING UMBRELLA MANUFACTURERS
Totalsolution is the one of the best home appliances repair canter in all over Delhi we deals in repairing window ac, Split ac , fridge , microwave, washing machine, water cooler, RO and more other home appliances in cheap rates
ReplyDeleteLCD, LED Repair in Janakpuri
LCD, LED Repair in Dwarka
LCD, LED Repair in Vikaspuri
LCD, LED Repair in Uttam Nagar
LCD, LED Repair in Paschim Vihar
LCD, LED Repair in Rohini
LCD, LED Repair in Punjabi Bagh
LCD, LED Repair in Delhi. & Delhi NCR
LCD, LED Repair in Delhi. & Delhi NCR
Washing Machine repair on your doorstep
Microwave repair on your doorstep
Rihan electronics is one of the best repairing service provider all over india we are giving our service in many different different cities like Noida,Gazibad,Delhi,Delhi NCR
ReplyDeleteAC Repair in NOIDA
Refrigerator Repair Gaziabad
Refrigerator repair in NOIDA
washing machine repair in Delhi
LED Light Repair in Delhi NCR
plasma TV repair in Gaziyabad
LCD TV Repair in Delhi NCR
LED TV Repair in Delhi
we are one of the top rated movers and packers service provider in all over india.we taqke all our own risks and mentanance. for more info visit our site and get all details and allso get amazing offers
ReplyDeletePackers and Movers in Haryana
Packers and Movers Haryana
Best Packers and Movers Gurugram
Packers and Movers in Gurugram
packers and movers in east delhi
packers and movers in south delhi
packer mover in delhi
cheapest packers and movers in faridabad
best Packers and Movers Faridabad
Are you searching for a home maid or old care attandents or baby care aaya in india contact us and get the best and experianced personns in all over india for more information visit our site
ReplyDeletebest patient care service in India
Male attendant service provider in India
Top critical care specialist in India
Best physiotherapist providers in India
Home care service provider in India
Experienced Baby care aaya provider in India
best old care aaya for home in India
Best medical equipment suppliers in India
The article is so informative. This is more helpful for our
ReplyDeleteLearn best software testing online certification course class in chennai with placement
Best selenium testing online course training in chennai
Best online software testing training course institute in chennai with placement
Thanks for sharing.
Nice post and more informative,thanks for sharing...
ReplyDeleteAWS Training in Bangalore
RPA Training in Kalyan Nagar
Data Science with Python Training Bangalore
AWS Training in Kalyan Nagar
RPA training in bellandur
AWS Training in bellandur
Marathahalli AWS Training Institues
Kalyan nagar AWS training in institutes
Data Science Training in bellandur
Data Science Training in Kalyan Nagar
Thanks for splitting your comprehension with us. It’s really useful to me & I hope it helps the people who in need of this vital information.web design company in velachery
ReplyDeleteI would definitely thank the admin of this blog for sharing this information with us. Waiting for more updates from this blog admin.
ReplyDeletesalesforce Training in Bangalore
uipath Training in Bangalore
blueprism Training in Bangalore
Your post is just outstanding! thanx for such a post,its really going great and great work.
ReplyDeletepython training in kalyan nagar|python training in marathahalli
selenium training in marathahalli|selenium training in bangalore
devops training in kalyan nagar|devops training in bellandur
phthon training in bangalore
Nice post. Thanks for sharing and informing about your services.
ReplyDeletesalesforce Training in Bangalore
uipath Training in Bangalore
blueprism Training in Bangalore
This is really a nice and informative, containing all information and also has a great impact on the new technology.
ReplyDeleteaws Training in Bangalore
python Training in Bangalore
hadoop Training in Bangalore
angular js Training in Bangalore
bigdata analytics Training in Bangalore
Great post shared. wellington tree removal service
ReplyDeleteThanks for sharing.
ReplyDeletekitchen remodel atlanta ga
Great.stucco application florida
ReplyDeletecontaining all information and also has a great impact.
ReplyDeletekitchen and bath remodeling fort worth tx
Informative post.
ReplyDeleteconstruction companies west palm beach fl
Wow...What an excellent informative blog, really helpful. Thank you so much for sharing such a wonderful article with us.keep updating..
ReplyDeleteaws Training in Bangalore
python Training in Bangalore
hadoop Training in Bangalore
angular js Training in Bangalore
bigdata analytics Training in Bangalore
Great sharing.
ReplyDeletekitchen and bath remodelers midland
nice post.
ReplyDeleteremoving popcorn ceiling and refinishing cost
I am impressed by the way of writing your blog and topics which you covered. I read all your post which is useful and informative.
ReplyDeleteaws Training in Bangalore
python Training in Bangalore
hadoop Training in Bangalore
angular js Training in Bangalore
bigdata analytics Training in Bangalore
רציתי רק לשאול, אפשר לשתף את הפוסט בבלוג שלי?
ReplyDeleteקבוצת גבאי פייסבוק
very informative keep posting.
ReplyDeleteשער כניסה
This comment has been removed by the author.
ReplyDeletenice...
ReplyDeletedominican republic web hosting
iran hosting
palestinian territory web hosting
panama web hosting
syria hosting
services hosting
afghanistan shared web hosting
afghanistan shared web hosting
ReplyDeleteandorra web hosting
belarus web hosting
brunei darussalam hosting
inplant training in chennai
nice...
ReplyDeletebrunei darussalam web hosting
costa rica web hosting
costa rica web hosting
hong kong web hosting
jordan web hosting
turkey web hosting
nice...
ReplyDeletegibraltar web hosting
iceland web hosting
lebanon web hosting
lithuania shared web hosting
inplant training in chennai
nice.............
ReplyDeletevietnam web hosting
google cloud server hosting
canada telus cloud hosting
algeeria hosting
angola hostig
shared hosting
bangladesh hosting
botswana hosting
central african republi hosting
shared hosting
Nice information...
ReplyDeleteAustralia hosting
Bermuda web hosting
Botswana hosting
mexico web hosting
moldova web hosting
albania web hosting
andorra hosting
armenia web hosting
australia web hosting
very informative...
ReplyDeletedenmark web hosting
inplant training in chennai
nice...
ReplyDeleteluxembourg web hosting
mauritius web hosting mongolia web hosting
namibia web hosting
norway web hosting
rwanda web hosting
spain hosting
turkey web hosting
venezuela hosting
vietnam shared web hosting
good..
ReplyDeleteafghanistan hosting
angola hosting
afghanistan web hosting
bahrain web hosting
belize web hosting
india shared web hosting
italy web hosting
ReplyDeletesuden web hosting
tunisia hosting
uruguay web hosting
inplant training in chennai
awesome post.
ReplyDelete123 movies
inplant training in chennai
ReplyDeleteinplant training in chennai
inplant training in chennai for it.php
chile web hosting
colombia web hosting
croatia web hosting
cyprus web hosting
bahrain web hosting
india web hosting
iran web hosting
אהבתי מאוד את סגנון הכתיבה
ReplyDeleteמגשי אירוח טבעוניים
לגמרי פוסט שדורש שיתוף תודה.
ReplyDeleteיהלומי מעבדה
פוסט מרענן במיוחד. לגמרי משתף
ReplyDeleteשולחן פינת אוכל
לגמרי פוסט שדורש שיתוף תודה.
ReplyDeleteמזנון צף
מזל שנתקלתי בכתבה הזאת. בדיוק בזמן
ReplyDeleteמילוי שפתיים
very nice post.
ReplyDeleteמערכת סטריאו
excellent blogs.....!!!
ReplyDeletechile web hosting
colombia web hosting
croatia web hosting
cyprus web hosting
bahrain web hosting
india web hosting
iran web hosting
kazakhstan web hosting
korea web hosting
moldova web hosting
nice information......
ReplyDeleteree internship in bangalore for computer science students
internship for aeronautical engineering
internship for eee students in hyderabad
internship in pune for computer engineering students 2018
kaashiv infotech internship fees
industrial training certificate format for mechanical engineering students
internship report on machine learning with python
internship for biomedical engineering students in chennai
internships in bangalore for cse
internship in coimbatore for ece
תודה על השיתוף. מחכה לכתבות חדשות.
ReplyDeleteהפקת אירועים
excellent
ReplyDeletekyrgyzstan web hosting
lebanon web hosting
lithuania web hosting
macao hosting
madagascar web hosting
pakistan hosting
panama shared web hosting
paraguay web hosting
peru web hosting
philippines hosting
very good.....
ReplyDeleteinternship in bangalore for cse students
internship for aerospace engineering students in india
core companies in coimbatore for ece internship
paid internship in pune for computer engineering students
automobile internship in chennai
internship in chennai for eee with stipend
internship for bca students
dotnet training in chennai
aeronautical engineering internship
inplant training for ece students
Excellent post...very useful...
ReplyDeletepython training in chennai
internships in hyderabad for cse 2nd year students
online inplant training
internships for aeronautical engineering students
kaashiv infotech internship review
report of summer internship in c++
cse internships in hyderabad
python internship
internship for civil engineering students in chennai
robotics course in chennai
אין ספק שזה אחד הנושאים המעניינים. תודה על השיתוף.
ReplyDeleteמוצרי תינוקות
כל הכבוד על הפוסט. אהבתי
ReplyDeleteהשקעה בנדל"ן בארה"ב
IT IS A BEST ONE FOR SEARCHING....
ReplyDeletekaashiv infotech internship in bangalore
internship for ece
mba internship
final year project proposal for information technology
internships in chennai for ece students
companies for industrial visit in chennai for cse students
internship in bangalore for eee
internship in chennai
inplant training certificate format for mechanical engineering
internship for aeronautical engineering students in chennai
very good...
ReplyDeleteinternship report on python
free internship in chennai for ece students
free internship for bca
internship for computer science engineering students in india
internships in hyderabad for cse students 2018
electrical companies in hyderabad for internship
internships in chennai for cse students 2019
internships for ece students
inplant training in tcs chennai
internship at chennai
Good information
ReplyDeletekaashiv infotech internship fees
internship
internship in chennai for cse students
internships in hyderabad for eee students 2019
inplant training for cse
internship for ece students in coimbatore
internship for cse
internship for cse 3rd year students
inplant training in chennai for ece students
summer training for 3rd year electronics and communication engineering students
nice.....it is use full...
ReplyDeleteaeronautical internship in india
free internship in chennai for mechanical engineering student
architectural firms in chennai for internship
internship in coimbatore for eee
online internships for cse students
mechanical internship certificate
inplant training report
internships in hyderabad for cse
internship for mba students in chennai
internship in trichy for cse
good..nice..
ReplyDeleteinternships in bangalore for ece students 2019
internship for aeronautical engineering students in bangalore
kaashiv infotech chennai
internship for ece students in bangalore 2018
internship in chennai for eee with stipend
internship in chennai for mechanical engineering students
kaashiv infotech hyderabad
kaashiv infotech internship
internship in chennai for cse 2019
internship in aeronautical engineering
ReplyDeletegood.....
kaashiv infotech pune
industrial training report for electronics and communication
internships for cse
internship for automobile engineering students in bangalore
internships in bangalore for eee students
internship for civil engineering students in chennai 2019
internship in automobile companies in chennai
robotics chennai
final year projects for information technology
hii nyc..
ReplyDeleteinternships for cse students in bangalore
internship for cse students
industrial training for diploma eee students
internship in chennai for it students
kaashiv infotech in chennai
internship in trichy for ece
inplant training for ece
inplant training in coimbatore for ece
industrial training certificate format for electrical engineering students
internship certificate for mechanical engineering students
Great Information,it has lot for stuff which is informative.I will share the post with my friend
ReplyDeletecat hanging necklace
very nice post.
ReplyDeleteפלאנרז הפקות
אין ספק שהפוסט הזה דורש שיתוף. תודה.
ReplyDeleteתמונה מודפסת על עץ
Great article.
ReplyDelete123movie
Very nice post.
ReplyDelete123 movie
FOSTIIMA Business School is a pioneer in management studies in India and has figured consistently in the list of top B-Schools for students in India. FOSTIIMA Business School in Delhi are Well-Known for Providing Quality Management Education in the Fields Such as Accounting, Human Resource, Marketing, Finance, and Many Others Specialization. If you are more information visit a website : https://www.fostiima.org/
ReplyDeletebest mba college
best mba college in delhi
best mba college in delhi ncr
best mba college in india
best mba colleges
best mba colleges in delhi
best mba colleges in delhi ncr
best mba colleges in india
best mba institute in delhi
best mba institute in delhi ncr
mba programs
mba programs in delhi
mba programs in india
top mba college
top mba college in delhi
top mba college in delhi ncr
top mba college in india
top mba colleges
top mba colleges in delhi
top mba colleges in delhi ncr
b schools in delhi
best b schools in delhi
best b schools in delhi ncr
best b schools in india
best business schools in india
business school
business school in delhi
business school in delhi ncr
business school in india
business schools
business schools in delhi
business schools in delhi ncr
top 10 pgdm college in india
top 10 pgdm colleges in delhi
top 10 pgdm colleges in india
best pgdm college
best pgdm courses in india
best pgdm institute in delhi
best pgdm institute in delhi ncr
best pgdm institute in india
pgdm
pgdm college
pgdm college in delhi
מזל שנתקלתי בכתבה הזאת. בדיוק בזמן
ReplyDeleteמצלמות אבטחה לעסק
keep up the good work. this is an Assam post. this to helpful, i have reading here all post. i am impressed. thank you. this is our digital marketing training center. This is an online certificate course
ReplyDeletedigital marketing training in bangalore | https://www.excelr.com/digital-marketing-training-in-bangalore
פוסט נחמד. חייב לשתף עם העוקבים שלי.
ReplyDeleteדחיקת תוצאות שליליות בגוגל
ReplyDeleteThis content of information has
helped me a lot. It is very well explained and easy to understand.
seo training classes
seo training course
seo training institute in chennai
seo training institutes
seo courses in chennai
seo institutes in chennai
seo classes in chennai
seo training center in chennai
ReplyDeleteYou write this post very carefully I think, which is easily understandable to me. Not only this, but another post is also good. As a newbie, this info is really helpful for me. Thanks to you.
Tally ERP 9 Training
tally classes
Tally Training institute in Chennai
Tally course in Chennai
Nice blog,I understood the topic very clearly,And want to study more like this.
ReplyDeleteData Scientist Course
Nice post. Thanks for sharing this post.
ReplyDeleteglobal asset management korea
תודה על השיתוף. מחכה לכתבות חדשות.
ReplyDeleteחברת קידום אתרים
כתיבה מעולה, אהבתי. אשתף עם העוקבים שלי.
ReplyDeleteמארזים ליולדת
סגנון כתיבה מרענן, תודה על השיתוף.
ReplyDeleteקרקעות להשקעה
Attend The Data Science Courses From ExcelR. Practical Data Science Courses Sessions With Assured Placement Support From Experienced Faculty. ExcelR Offers The Data Science Courses.
ReplyDeleteData Science Courses
Data Science Interview Questions
רציתי רק לשאול, אפשר לשתף את הפוסט בבלוג שלי?
ReplyDeleteבית תוכנה
awesome post.
ReplyDeleteglobal asset management
I like it your blog.
ReplyDeleteglobal asset management korea
Nice information...
ReplyDeletecoronavirus update
inplant training in chennai
inplant training
inplant training in chennai for cse
inplant training in chennai for ece
inplant training in chennai for eee
inplant training in chennai for mechanical
internship in chennai
online internship
Great...
ReplyDeleteCoronavirus Update
Intern Ship In Chennai
Inplant Training In Chennai
Internship For CSE Students
Online Internships
Internship For MBA Students
ITO Internship
Awesome blog
ReplyDeleteIntern Ship In Chennai
Inplant Training In Chennai
Internship For CSE Students
Coronavirus Update
Online Internships
Internship For MBA Students
ITO Internship
This post is very simple to read and appreciate without leaving any details out. Great work!
ReplyDeletedata analytics course
supply chain analytics beginner's guide
big data course in malaysia
360DigiTMG
big data analytics training in malaysia
I like viewing web sites which comprehend the price of delivering the excellent useful resource free of charge. I truly adored reading your posting. Thank you!
ReplyDeletedata analytics course
supply chain analytics beginner's guide
big data course in malaysia
360DigiTMG
big data analytics training in malaysia
Good post. I learn something new and challenging on sites I stumbleupon on a daily basis. It's always interesting to read content from other writers and practice a little something from their web sites.
ReplyDeleteDigital Marketing Training Course in Chennai | Digital Marketing Training Course in Anna Nagar | Digital Marketing Training Course in OMR | Digital Marketing Training Course in Porur | Digital Marketing Training Course in Tambaram | Digital Marketing Training Course in Velachery
הייתי חייבת לפרגן, תודה על השיתוף.
ReplyDeleteתמונה על קנבס
nice.
ReplyDeleteהתקנת מצלמות אבטחה
Nice post. Thanks for sharing this post.
ReplyDeleteאינטרקום סקיוריטי
Awesome blog. I enjoyed reading your articles. This is truly a great read for me. I have bookmarked it and I am looking forward to reading new articles. Keep up the good work!
ReplyDeleteData Science Course in Pune
Data Science Training in Pune
I feel very grateful that I read this. It is very helpful and very informative and I really learned a lot from it.
ReplyDeleteData Analytics Course in Pune
Data Analytics Training in Pune
I am impressed by the information that you have on this blog. It shows how well you understand this subject.
ReplyDeleteBusiness Analytics Course in Pune
Business Analytics Training in Pune
I don t have the time at the moment to fully read your site but I have bookmarked it and also add your RSS feeds. I will be back in a day or two. thanks for a great site.
ReplyDeletedata science bootcamp malaysia
I am impressed by the information that you have on this blog. It shows how well you understand this subject.
ReplyDeletedata analytics course
big data analytics malaysia
big data course
cool stuff you have and you keep overhaul every one of us
ReplyDeletedata science bootcamp malaysia
I am impressed by the information that you have on this blog. It shows how well you understand this subject.
ReplyDeletedata analytics course
big data analytics malaysia
big data course
I am really enjoying reading your well written articles. It looks like you spend a lot of effort and time on your blog. I have bookmarked it and I am looking forward to reading new articles. Keep up the good work.
ReplyDeleteData Science Certification in Bangalore
keep up the good work. this is an Assam post. this to helpful, i have reading here all post. i am impressed. thank you.
ReplyDeleteDot Net Training in Chennai | Dot Net Training in anna nagar | Dot Net Training in omr | Dot Net Training in porur | Dot Net Training in tambaram | Dot Net Training in velachery
valuable information
ReplyDeleteGarage door repair Etobicoke
Excellent information with unique content and it is very useful to know about the information based on blogs
ReplyDeleteAWS training in chennai | AWS training in annanagar | AWS training in omr | AWS training in porur | AWS training in tambaram | AWS training in velachery
great post.
ReplyDeleteGlobal asset management Seoul
Really impressive post. I read it whole and going to share it with my social circules. I enjoyed your article and planning to rewrite it on my own blog.
ReplyDeleteCat Doors
I was just browsing through the internet looking for some information and came across your blog. I am impressed by the information that you have on this blog. It shows how well you understand this subject. Bookmarked this page, will come back for more.
ReplyDeleteData Science Course in Bangalore
Pretty good post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog posts. Any way I’ll be subscribing to your feed and I hope you post again soon.
ReplyDeleteData Science Training in Bangalore
Very interesting blog. Many blogs I see these days do not really provide anything that attracts others, but believe me the way you interact is literally awesome.You can also check my articles as well.
ReplyDeleteData Science In Banglore With Placements
Data Science Course In Bangalore
Data Science Training In Bangalore
Best Data Science Courses In Bangalore
Data Science Institute In Bangalore
Thank you..
I'm interested article more content and skill is very nice.
ReplyDeletePython Training in Chennai | Certification | Online Training Course | Python Training in Bangalore | Certification | Online Training Course | Python Training in Hyderabad | Certification | Online Training Course | Python Training in Coimbatore | Certification | Online Training Course | Python Training in Online | Python Certification Training Course
very interesting post.this is my first time visit here.i found so many interesting stuff in your blog especially its discussion..thanks for the post!
ReplyDeleteData Science Course in Hyderabad | Data Science Training in Hyderabad
You are in point of fact a just right webmaster. The website loading speed is amazing. It kind of feels that you're doing any distinctive trick. Moreover, The contents are masterpiece. you have done a fantastic activity on this subject!
ReplyDeleteBusiness Analytics Training in Hyderabad | Business Analytics Course in Hyderabad
Every day I always visit sites to obtain the best information for materials research I was doing.......any blogs I see these days do not really provide anything that attracts others, but believe me the way you interact is literally awesome. Data Science Training In Chennai | Certification | Data Science Courses in Chennai | Data Science Training In Bangalore | Certification | Data Science Courses in Bangalore | Data Science Training In Hyderabad | Certification | Data Science Courses in hyderabad | Data Science Training In Coimbatore | Certification | Data Science Courses in Coimbatore | Data Science Training | Certification | Data Science Online Training Course
ReplyDeleteReally nice and interesting post. I was looking for this kind of information and enjoyed reading this one. Keep posting. Thanks for sharing.
ReplyDeletedata science course in guduvanchery
Thumbs up guys your doing a really good job. It is the intent to provide valuable information and best practices, including an understanding of the regulatory process.
ReplyDeleteCyber Security Course in Bangalore
Very nice blog and articles. I am really very happy to visit your blog. Now I am found which I actually want. I check your blog everyday and try to learn something from your blog. Thank you and waiting for your new post.
ReplyDeleteCyber Security Training in Bangalore
nice sharing.
ReplyDeletestratford management Japan
Nice service there are just few who are providing this service great job.
ReplyDeleteBastion Balance Korea
Thanks for sharing an informative blog keep rocking bring more details.I like the helpful info you provide in your articles. I’ll bookmark your weblog and check again here regularly. I am quite sure I will learn much new stuff right here! Good luck for the next!
ReplyDeleteArtificial Intelligence Training in Chennai
Ai Training in Chennai
Artificial Intelligence training in Bangalore
Ai Training in Bangalore
Artificial Intelligence Training in Hyderabad | Certification | ai training in hyderabad
Artificial Intelligence Online Training
Ai Online Training
Blue Prism Training in Chennai
Amazing post found to be very impressive while going through this post. Lots of appreciation to the blogger who took an initiative to write this particular blog. Thanks for sharing and keep posting such an informative content.
ReplyDelete360DigiTMG Cyber Security Course
Really nice and interesting post. I was looking for this kind of information and enjoyed reading this one. Keep posting. Thanks for sharing.
ReplyDeletevisit here
Very interesting blog. Many blogs I see these days do not really provide anything that attracts others, but believe me the way you interact is literally awesome.You can also check my articles as well.
ReplyDelete360DigiTMG Data Science Course In Pune
360DigiTMG Data Science Training In Pune
Thank you..
Nice Post,Thanks for sharing such a great post.
ReplyDeletePython Online Training
Python Online Training in Chennai
Python Online Course in Chennai
Very interesting blog. Many blogs I see these days do not really provide anything that attracts others, but believe me the way you interact is literally awesome. I will instantly grab your rss feed to stay informed of any updates you make and as well take the advantage to share some latest information about
ReplyDeleteCREDIT CARD HACK SOFTWARE which many are not yet informed of the recent technology.
Thank so much, keep doing this great job.
If you don't mind, then continue this excellent work and expect more from your great blog posts
ReplyDeletedata science course in noida
This blog is really helpful regarding all educational knowledge I earned. It covered a great area of subject which can assist a lot of needy people. Everything mentioned here is clear and very useful
ReplyDeleteAI Training in Hyderabad
מרתק כמה שלא הבנתי כלום עד שקראתי את המאמר הנפלא הזה
ReplyDeleteבניית בריכת שחייה מבטון
Nice post, thanks for sharing such a informative information.
ReplyDeletePHP Online Training
PHP Online Course
PHP Online Training in chennai
ReplyDeleteAdditionally, this is an excellent article which I truly like studying. It's not everyday I have the option to see something similar to this.
Data Science Training Institute in Bangalore
Very interesting blog. Many blogs I see these days do not really provide anything that attracts others, but believe me the way you interact is literally awesome.You can also check my articles as well.
ReplyDeleteData Science Course In Hyderabad
Data Science Training In Hyderabad
Best Data Science Course In Hyderabad
Thank you..
Some time we never feel what we have done but for other that is big achievement
ReplyDeleteGarage Door Repair Strathmore
Thanks for sharing an information to us.
ReplyDeleteData Science Online Training
python Online Training
Great and nice blog thanks sharing
ReplyDeleteGarage Door Repair Bethel Park
Good Post! , it was so good to read and useful to improve my knowledge as an updated one, keep blogging.After seeing your article I want to say that also a well-written article with some very good information which is very useful for the readers....thanks for sharing it and do share more posts likethis. https://www.3ritechnologies.com/course/data-science-online-training/
ReplyDeleteThank you for sharing such a wonderful Post. This post is very informative for people. Keep posting.
ReplyDeletePhp Web Development Company Bangalore | Online Store Developer | Internet Marketing Company in Bangalore | Web Solution Provider Bangalore
חשבתי שאתקל בסתם עוד מאמר שטחי. טעיתי.
ReplyDeleteאיך לאלף כלב
Tremendous blog quite easy to grasp the subject since the content is very simple to understand. Obviously, this helps the participants to engage themselves in to the subject without much difficulty. Hope you further educate the readers in the same manner and keep sharing the content as always you do.
ReplyDeleteData Science training
Truly incredible blog found to be very impressive due to which the learners who ever go through it will try to explore themselves with the content to develop the skills to an extreme level. Eventually, thanking the blogger to come up with such an phenomenal content. Hope you arrive with the similar content in future as well.
ReplyDeleteDigital Marketing training
Fantastic blog extremely good well enjoyed with the incredible informative content which surely activates the learners to gain the enough knowledge. Which in turn makes the readers to explore themselves and involve deeply in to the subject. Wish you to dispatch the similar content successively in future as well.
ReplyDeleteartificial intelligence certification in bhilai
Having said that, it is pretty clear that only trained professionals can gain maximum exposure in this data-driven era and enjoy greater salary structure. data science course syllabus
ReplyDeletegreat work
ReplyDeletegarage door track adjustment
Attend The Data Analyst Course From ExcelR. Practical Data Analyst Course Sessions With Assured Placement Support From Experienced Faculty. ExcelR Offers The Data Analyst Course.
ReplyDeleteData Analyst Course
Awesome content
ReplyDeleteNearest Garage Door Company
It doesn't look too old, what so ever nice location.
ReplyDeletepittsburgh garage door repair
Good topic, this is going to help a lot of people get the whole concept
ReplyDeletefridge repair mississauga
This is a great article thanks for sharing this informative information.
ReplyDeletegarage door repair strathmore
I’m happy I located this blog! From time to time, students want to cognitive the keys of productive literary essays composing. Your first-class knowledge about this good post can become a proper basis for such people. nice one
ReplyDeletedata science course in India
Well written article
ReplyDeleteUFA888
Seo company in Varanasi, India : Best SEO Companies in Varanasi, India: Hire Kashi Digital Agency, best SEO Agency in varanasi, india, who Can Boost Your SEO Ranking, guaranteed SEO Services; Free SEO Analysis.
ReplyDeleteBest Website Designing company in Varanasi, India : Web Design Companies in varanasi We design amazing website designing, development and maintenance services running from start-ups to the huge players
Wordpress Development Company Varanasi, India : Wordpress development Company In varanasi, india: Kashi Digital Agency is one of the Best wordpress developer companies in varanasi, india. Ranked among the Top website designing agencies in varanasi, india. wordpress website designing Company.
E-commerce Website designing company varanasi, India : Ecommerce website designing company in Varanasi, India: Kashi Digital Agency is one of the Best Shopping Ecommerce website designing agency in Varanasi, India, which provides you the right services.
Website design company Munger
ReplyDeleteWebsite design company nasik
Website design company Navi Mumbai
Website designing company Rajkot
Website designing company Srinagar
Website designing company Unnao
Website designing company Vellore
Website designing company Visakhapatnam
Website design company faridabad
Website design company Fatehpur
yes it happens with me as well. we feel the difference, convince and comfort. but how ever we are not simple free of worries as these old people were.nice article.
ReplyDeletegarage door cable repair ottawa
Nice post.
ReplyDeleteUFABETที่ได้เงินเยอะที่สุด
I have bookmarked your site since this site contains significant data in it. You rock for keeping incredible stuff. I am a lot of appreciative of this site.
ReplyDeletedata science course in noida
I'd like to know how everything is going with this.
ReplyDeleteGarage Door Springs Replacement
I really thank you for the valuable info on this great subject and look forward to more great posts ExcelR Data Analytics Course
ReplyDeleteGreat article nicely presented and informative article.
ReplyDeletegarage door moving slow
"I would like to say that, your blog is very nice, informative and amazing. Thanks for sharing your blog with us."
ReplyDeleteRefrigerator Repair Service in Delhi
Thank you for sharing.
ReplyDeleteData Science Online Training
Python Online Training
Salesforce Online Training
Extraordinary blog filled with an amazing content which no one has touched this subject before. Thanking the blogger for all the terrific efforts put in to develop such an awesome content. Expecting to deliver similar content further too and keep sharing as always.
ReplyDeleteDigital Marketing training
מאמר מצוין נהניתי מכל רגע של קריאה
ReplyDeleteמערכות אינטרקום
Thanks for giving me good information. It is really useful for getting more information.
ReplyDeletefeatures of android operating system
ui path tool
bdd framework in selenium
basics of tally
why ethical hacking
rpa interview questions and answers pdf
Great article nicely presented and informative article.
ReplyDeletelegiongaragedoors.ca
Thank you for sharing.
ReplyDeleteData Science Online Training
Python Online Training
Salesforce Online Training
Thanks for sharing information to our knowledge, it helps me plenty keep sharing…
ReplyDeleteHadoop Training Institute in Pune
Hadoop Administration training institutes in Pune
Worth reading! Our experts also have given detailed inputs about these trainings & courses! Presenting here for your reference. Do checkout
ReplyDeleteaws training in chennai & enjoy learning more about it.
Cool stuff you have and you keep overhaul every one of us
ReplyDeletedata science in malaysia
Actually I read it yesterday I looked at most of your posts but I had some ideas about it . This article is probably where I got the most useful information for my research and today I wanted to read it again because it is so well written.
ReplyDeleteData Science Course in Bangalore
Sharing the same interest, Infycle feels so happy to share our detailed information about all these courses with you all! Big data training in chennai & get to know everything you want to about software trainings.
ReplyDeleteI need to communicate my deference of your composing aptitude and capacity to make perusers read from the earliest starting point as far as possible. I might want to peruse more up to date presents and on share my musings with you.
ReplyDeletebig data training
Your content is very unique and understandable useful for the readers keep update more article like this.
ReplyDeletedata science course in noida
thanks for your information really good and very nice The Best Result Driven Digital Marketing Agency in Chennai
ReplyDeleteFantastic blog extremely good well enjoyed with the incredible informative content which surely activates the learners to gain the enough knowledge. Which in turn makes the readers to explore themselves and involve deeply in to the subject. Wish you to dispatch the similar content successively in future as well.
ReplyDeleteData Science certification in Raipur
Truly incredible blog found to be very impressive due to which the learners who ever go through it will try to explore themselves with the content to develop the skills to an extreme level. Eventually, thanking the blogger to come up with such an phenomenal content. Hope you arrive with the similar content in future as well.
ReplyDeleteDigital Marketing Course in Raipur
Highly appreciable regarding the uniqueness of the content. This perhaps makes the readers feels excited to get stick to the subject. Certainly, the learners would thank the blogger to come up with the innovative content which keeps the readers to be up to date to stand by the competition. Once again nice blog keep it up and keep sharing the content as always.
ReplyDeleteData Science training
Wonderful blog found to be very impressive to come across such an awesome blog. I should really appreciate the blogger for the efforts they have put in to develop such an amazing content for all the curious readers who are very keen of being updated across every corner. Ultimately, this is an awesome experience for the readers. Anyways, thanks a lot and keep sharing the content in future too.
ReplyDeleteDigital Marketing Course in Bhilai
Incredibly conventional blog and articles. I am realy very happy to visit your blog. Directly I am found which I truly need. Thankful to you and keeping it together for your new post.
ReplyDeletedata science courses in noida
Your content is very unique and understandable useful for the readers keep update more article like this.
ReplyDeletedata science course noida
Wow, amazing post! Really engaging, thank you.
ReplyDeletedata science training
Get Your Custom Socks Boxes – Wholesale Socks Packaging Boxes with Logo Made in Custom Shapes, sizes, and layouts. We offer quality and error-free packaging services with free shipping in all the UK. Today nobody wishes a hideous socks box on the shelves Our expert designers will come up tempting looks of socks boxes for you so your customers can complement your brand. We use a superior material for formulating custom printed paper socks boxes that retain them attractive for a long time.
ReplyDeleteĐặt vé máy bay tại Aivivu, tham khảo
ReplyDeletevé máy bay đi Mỹ giá rẻ 2021
vé mỹ về việt nam
vé máy bay tphcm nha trang
vé máy bay sg phú quốc
ve may bay di Hue gia re
Nice and very informative blog, glad to learn something through you.
ReplyDeletedata analytics course delhi
Learn Amazon Web Services for making your career towards a sky-high with Infycle Technologies. Infycle Technologies is the best AWS training center in Chennai, providing courses for the AWS Training in Chennai in 200% hands-on practical training with professional trainers in the domain. Apart from the coaching, the placement interviews will be arranged for the students, so that they can set their career without any struggle. Of all that, 100% placement assurance will be given here. To have the best career, call 7502633633 to Infycle Technologies and grab a free demo to know more.Best AWS Training in Chennai
ReplyDeleteThis is a brilliant article, Given such a great amount of data in it, These kind of articles keeps the clients enthusiasm for the site, and continue sharing more
ReplyDelete360DigiTMG data analytics course
I just finished reading your book Doe's Ways and wanted to tell you how much I enjoyed it.
ReplyDelete360DigiTMG hrdf contribution
Thanks for always being willing to lend a hand to provide the best knowledge.
ReplyDeletehttps://360digitmg.com/course/certification-program-on-digital-marketing
Good information you shared. keep posting.
ReplyDeleteBest data science course with placements
Sharing the same interest, Infycle feels so happy to share our detailed information about all these courses with you all! Do check them out
ReplyDeleteBest Hadoop training in chennai & get to know everything you want to about software trainings.
Good information you shared. keep posting.
ReplyDeletemachine learning courses in aurangabad